小さな VPN 手順書が急いでいるときに答えるべきこと
地図、期待される結果、戻り道を書いておけば、トンネルを見たことのない担当者でも健全かどうかを判断できる。
02:00 に引き継いだ担当者は、文書が設計を説明するだけで何を実行するかを一度も書いていなかったため、サービスが健全かどうかを言えなかった。ファイルを他の人に渡して部屋を出る、それが意味を持つ唯一のテストだ。小さな VPN のメモのほとんどは、二ページ目でこのテストに落ちる。以下の形はそのテストに耐えるし、どれも長くある必要はない。
疲れた人がざっと見られる地図から始める
急いでいるときに誰かが調べなければならないこと、つまりクライアントが接続する名前、デーモンが待ち受けるポート、配布するアドレスプール、クライアント名の解決方法、トンネルの先で到達できるべきネットワークを書く。実際に動かしているビルド番号を加え、可動部分ごとに所有するコンポーネントを名指しするのは、ルート、パケットフィルタ、クライアントプロファイルがしばしば三つの別々の場所で設定されるからだ。外部の依存も書き留める、つまりホスティングのアカウント、上流の回線、ID プロバイダ、遠端のプライベートネットワークだ。表や手描きの図のほうが段落よりもうまく運ぶ、読み手は読むのではなく、ざっと見ているからだ。
次に、緊急の変更を承認できる人を、トンネルが上がっているかどうかに依存しない連絡経路とともに名指しする。代替のないエスカレーション経路は、それが必要になるまさにその事故で行き止まりになる。名前二つと電話番号一つで足り、この地図は職員名簿ではない。
どの確認にも、健全と見なす答えが必要だ
サービスごとに、コマンドと、それが成功したことを意味する行を並べて置く、読み手が急いでいるときに片方から他方を導く必要がないようにするためだ。プロセスの状態と端から端までの到達性は別の層にある、片方はデーモンが設定を受け入れたことを示し、もう片方はクライアントがトンネルの提供物を使えることを示す。両方の行を書き、それぞれがどの故障を捕まえるのかを書く、結果を示さない確認は、出力が問題なさそうかどうかの議論に変わるからだ。
systemctl status openvpn-server@lab
ss -lntu | grep 1194
両方を実行し、順序ではなく別々の証拠として扱う。緑のユニットが、誰も使えないトンネルの隣に座っていることがあり、逆は、待ち受けが壊れたルートを生き延びたときに起きる。各行が観測する層を明記すれば、食い違ったときにどちらを信じるべきか読み手に分かる。
三つの故障でほとんどの夜は足りる
端点に届かないこと、ID が拒否されること、役に立つ通信のない接続、この三つで誰かを起こすほぼすべてが説明できる。それぞれについて、最初の二つの確認と、エスカレーションする相手を書く、02:00 に誰かが診断の順番を考え出す必要がないようにするためだ。届かない場合はふつう経路か待ち受けを指し、ID の拒否は証明書、資格情報の保管場所、時計を指し、空の接続はルート、転送、名前解決を指す。この三つの枝は別々のログを読む、だからログを開く前に枝を選ばなければならない。
このホストで実行していないコマンドを貼るのではなく、上流の文書にリンクする。別の環境からコピーした未検証のコマンドは、参照より悪い、権威があるように見えて、静かに失敗するからだ。
変更は段落ではなく順序として書く
どんな変更でも、戻れるチェックポイント、成功を確認する検査、ロールバックを起こす条件を、この順に記録する。トンネルを通らない戻り道を含める、いま行っている変更こそが、それを閉ざしうるものだからだ。古いスナップショットではなく、現在の失効がどう復元されるかを書く、古い一覧は、その朝に引退させた資格情報を静かに再び受け入れるからだ。番号付きの命令形の手順は圧力に耐える、散文は解釈に変わる。
その戻り道は、必要になる前に、変更が意味を持つ大きさのときはいつでも練習しておく。記憶から書いたロールバックは、日付の付いた推測だ。
資格情報は別のところに住んでいる
ファイルに何かの素材を引用するのではなく、パスワードマネージャ、金庫、封印された封筒を指し、誰が開いてよいかを書く。秘密鍵、一度だけの回復コード、秘密を埋め込んだプロファイルは保護された保管場所に属し、ページは、権限を持つ担当者が 02:00 にどうやってそれらに辿り着くのかを説明すべきだ。生きた秘密を例に使ってはいけない、例はチケットやチャットのスレッドに貼られるからだ。参照と権限一覧、それだけが文書に必要なものだ。
実際の変更や復旧訓練のあとにファイルを見直し、もう存在しない経路を消し、次の保守判断が誰の仕事かを書く。最後に三列の変更履歴を置く、日付、何が変わったか、誰が検証したか。そのページが、残りが最新かどうかを次の読み手に告げ、systemd の systemctl の文書 は、いずれずれるサービスコマンドの言い換えより良いリンクだ。