register — 実行結果で判断する
Pro会員限定中級約45分6レッスン
「確認して、その結果で次の動きを変える」を Ansible で書く講座。register でコマンド結果を受け取り、changed_when / failed_when で意味を整え、when で分岐する。-v で中身の JSON を読み、command と shell の違いも押さえます。
対象者: 点検・ヘルスチェックをプレイブックにしたい方 / 「確認タスクが毎回 changed になる」のを直したい方
前提知識: Ansible中級 到達できないホストと総合ドリル 修了程度
この教材を終えると、できるようになること
- register / changed_when / failed_when がそれぞれ何を解決するかを説明できる
- register した変数の stdout_lines と、when による分岐の結果を読み取れる
- -v の出力から rc・stdout・stderr を読み、when の条件に使える値を特定できる
- command と shell の違い(シェルを通すかどうか)を説明し、使い分けられる
- 点検 → 修正 → 再点検の流れで、when の分岐が状態に応じて変わることを確認できる
修了後の姿: ロールで構造化し、Vaultで機密を守り、タグ・ローリング適用・エラー制御を使った本番想定のAnsible運用ができるようになります。
Chapter 1結果を受け取り、判断する
check.yml を題材に、register → 判定 → 分岐の流れを一周します。
- 確認タスクの悩み — 毎回 changed になる点検プレイブック check.yml を読み、register と changed_when の役割を理解します。約9分(有料会員限定)
- 実行して、結果が変数に入るのを見るcheck.yml を app01 に実行し、debug で表示された register の中身を読みます。約9分(有料会員限定)
- -v で register の中身を全部見る詳細表示で、register に入る JSON(cmd / rc / stdout / stderr)を観察します。約8分(有料会員限定)
- command と shell — パイプが使えるのはどっち?command モジュールでパイプが失敗する理由を体験し、shell モジュールで書き直します。約9分(有料会員限定)
- 直してから再点検 — 警告が消えるのを確かめるsite.yml で nginx を起動してから check.yml を再実行し、分岐が skipping に変わるのを確認します。約10分(有料会員限定)
Chapter 2確認クイズ
register と結果判定の理解を確認します。