ロールアウトの安全装置: max_fail_percentage・any_errors_fatal・rescue
Pro会員限定上級約40分6レッスン
1台が失敗したとき、Ansible の既定の動きは「残りのホストは続ける」です。本番のリリースでは、それが版の混在や LB の容量不足につながります。失敗したら止める(max_fail_percentage)、事前チェックで全体を止める(any_errors_fatal)、外したサーバーを戻してから止める(rescue)を、ディスクが満杯のサーバーがある本番で練習します。
対象者: リリースの途中で1台だけ失敗して、半端な状態が残ったことがある方
前提知識: ゼロダウンタイムのローリングデプロイ 修了程度
この教材を終えると、できるようになること
- 1台の失敗でリリースが止まらず、版の混在と LB から外れたままのサーバーが残ることを確かめられるようになる。
- max_fail_percentage: 0 で、1台でも失敗したらリリースを止められるようになる。
- 事前チェックのプレイに any_errors_fatal を付け、1台でも条件を満たさなければ何も変えずに止められるようになる。
- block / rescue で、失敗したホストを古い版のまま LB に戻し、失敗として扱って止められるようになる。
- serial のリスト・max_fail_percentage・rescue を組み合わせ、失敗したときに LB の容量を保ったまま止まることを確かめられるようになる。
修了後の姿: 大規模・複数チームで使えるAnsibleコードを設計・テスト・配布し、変更をエラーを出さずに安全に本番へ流せる自動化エンジニアへ。
Chapter 1失敗したときに、どこで止まるか
既定の動き、失敗の割合による停止、事前チェックでの全体停止、rescue による後片付け、カナリアとの組み合わせを練習します。
- 既定では、失敗しても残りは続くバッチの全台が失敗しない限り、次のバッチへ進む約7分(有料会員限定)
- max_fail_percentage で、失敗したら止める失敗の割合が上限を超えたら、そのタスクのところで止まる(同じバッチのほかのホストも)約7分(有料会員限定)
- 事前チェックで、全体を止めるany_errors_fatal: 1台でも失敗したら、全ホストをその場で止める約8分(有料会員限定)
- rescue で、外したサーバーを戻してから止めるblock の途中で失敗しても、rescue で LB に戻し、そのうえで fail する約8分(有料会員限定)
- カナリアと安全装置を組み合わせる1台 → 50% のバッチに、停止条件と rescue を重ねる約7分(有料会員限定)
Chapter 2確認クイズ
ロールアウトの安全装置の理解度をチェック。