本文へスキップ

冪等性を設計する: changed_when・failed_when・creates

Pro会員限定上級約40分6レッスン

command や shell を使ったタスクは、何度流しても changed になったり、成功を失敗と取り違えたりします。2回流して冪等性を測り、終了コードで changed_when と failed_when を設計し、creates と pipefail で「本当の状態」を返すタスクに直します。

対象者: プレイブックを流すたびに changed が出て、本当の変更が埋もれている方 / 社内ツールを Ansible から呼んでいる方

前提知識: ハンドラー上級: 順序・listen・失われる通知 修了程度

この教材を終えると、できるようになること

  • 同じプレイブックを2回流し、2回目に changed になるタスクを冪等でないタスクとして特定できるようになる。
  • コマンドの終了コード(や出力)から changed_when を書き、何もしなかった実行を ok にできるようになる。
  • コマンドの終了コードの意味を調べ、正常な非0(見つからない等)と本当の失敗を failed_when で区別できるようになる。
  • command の creates / removes で、一度だけ実行すべきコマンドを冪等にでき、パスの誤りに気づけるようになる。
  • shell のパイプで途中の失敗が隠れることを理解し、set -o pipefail と executable: /bin/bash で失敗を検出できるようになる。

修了後の姿: 大規模・複数チームで使えるAnsibleコードを設計・テスト・配布し、変更をエラーを出さずに安全に本番へ流せる自動化エンジニアへ。

この講座はPro会員限定です。無料の会員登録後、無料レッスンのあるコースから学習を始められます。