ロールの依存関係と argument_specs
Pro会員限定上級約39分6レッスン
ほかのチームが安心して使えるロールには、依存関係の正しい書き方と、入力の約束(argument_specs)が必要です。依存ロールが1回だけ動く条件、必須の変数と選択肢の検証、新しいロールへの約束の追加、上書きできない変数の原因(vars と defaults)を、実際に流して確かめます。
対象者: 自分のロールをほかのチームに使ってもらう方 / ロールの変数がなぜか上書きできずに困った方
前提知識: コレクションと requirements.yml でバージョンを固定する 修了程度
この教材を終えると、できるようになること
- --list-tasks で依存ロールの展開を確かめ、2回動く原因が引数の違いであることを説明できるようになる。
- 依存関係の書き方を直し、--list-tasks と実行結果で依存ロールが1回だけ動くことを確かめられるようになる。
- argument_specs の検証エラーを読み、呼び出し側の誤りを直せるようになる。
- 新しいロールの雛形を作り、argument_specs で必須の変数を宣言して、渡し忘れが止まることを確かめられるようになる。
- ロールの vars と defaults の優先順位の違いを説明し、使う人が上書きできる設計に直せるようになる。
修了後の姿: 大規模・複数チームで使えるAnsibleコードを設計・テスト・配布し、変更をエラーを出さずに安全に本番へ流せる自動化エンジニアへ。
Chapter 1使う人が迷わないロールを作る
依存ロールの重複、argument_specs による検証、新しいロールの約束、defaults と vars の使い分けを練習します。
- 依存ロールが2回動く理由を見つける依存ロールは「同じ引数なら」1回だけ。引数が違うと別物になる約7分(有料会員限定)
- 依存ロールを1回にする既定値と同じ引数を消せば、同じ app_base として1回にまとまる約7分(有料会員限定)
- argument_specs のエラーを読んで直す必須の変数の不足と、選択肢にない値を、最初のタスクで止める約8分(有料会員限定)
- 新しいロールに約束を書くansible-galaxy role init で作り、argument_specs を置いてから使ってもらう約8分(有料会員限定)
- 上書きできない変数を defaults に移すvars/main.yml はインベントリより強い。使う人に変えてほしい値は defaults へ約6分(有料会員限定)
Chapter 2確認クイズ
ロールの設計の理解度をチェック。