障害対応: 設定のずれ(ドリフト)を直す
Pro会員限定上級約40分6レッスン
「本番の挙動がインベントリと合わない」という問い合わせから、手作業による設定の変更と、走らなかった再起動のハンドラーを見つけます。--check --diff と、動いているプロセスの状態の両方で調べ、正しい状態に戻し、再発しない設定を入れて、ずれが無いことを確かめます。指示は「ゴール」だけです。
対象者: 「誰かが本番を手で直した」ことに後から気づいた経験がある方
前提知識: 障害対応: 途中で止まったリリースを再開する 修了程度
この教材を終えると、できるようになること
- 本番に --check --diff を流し、インベントリと違うファイルを見つけられるようになる。
- shopctl status の config_stale と設定値から、再起動が必要なホストを見つけられるようになる。
- 手で変えられた設定を、LB から外す手順(rolling.yml)で正しい状態に戻せるようになる。
- LB から外して再起動するプレイブック(restart.yml)で、web04 に新しい設定を読み込ませられるようになる。
- rolling.yml に force_handlers を入れ、すべてのずれを直したあと、本番への --check で変更が0件であることを確かめられるようになる。
修了後の姿: 大規模・複数チームで使えるAnsibleコードを設計・テスト・配布し、変更をエラーを出さずに安全に本番へ流せる自動化エンジニアへ。
Chapter 1ファイルのずれと、プロセスのずれ
--check --diff による検出、動いている設定の確認、正しい状態への復旧、安全な再起動、再発防止を練習します。
- --check --diff でファイルのずれを見つけるあるべき状態と今のファイルの差は、流さずに差分で見る約7分(有料会員限定)
- 動いているプロセスのずれを見つけるファイルは正しくても、再起動していなければ古い設定のまま約7分(有料会員限定)
- 手作業の変更を、正しい状態に戻すあるべき状態はリポジトリ。戻すのもゼロダウンタイムの手順で約8分(有料会員限定)
- 古い設定のまま動いているプロセスを、安全に再起動するファイルは変わらないので、ロールを流しても再起動は起きない約7分(有料会員限定)
- 再発を防ぎ、ずれが無いことを確かめて閉じるforce_handlers で通知を失わない。最後に --check で変更 0 件約8分(有料会員限定)
Chapter 2確認クイズ
ドリフトの調査と復旧の理解度をチェック。