変数とテンプレート
Plus会員限定入門約40分6レッスン
ポート番号やサーバー名を「変数」にすれば、同じプレイブックを設定だけ変えて使い回せます。vars・{{ }}・template モジュールで設定ファイルを生成し、-e と --check --diff で変更を予告し、group_vars / host_vars でグループやホストごとの設定を持つところまでを実践します。
対象者: 設定ファイルの配布を、コピーではなく「生成」で行えるようになりたい方
前提知識: インベントリ応用 修了程度
この教材を終えると、できるようになること
- vars で定義した変数がテンプレートの {{ }} に埋め込まれる仕組みを説明できる
- template モジュールで生成されたファイルを command で確認し、変数が展開されたことを確かめられる
- -e で変数を上書きし、--check --diff で変更内容を適用前に読める
- group_vars/<グループ>.yml と host_vars/<ホスト>.yml の役割と、変数がホストに合成される仕組みを説明できる
- inventory_hostname などの組み込み変数と group_vars を使ったテンプレートを配布し、ホストごとの生成結果を読める
修了後の姿: インベントリ・プレイブック・変数・テンプレート・ハンドラーを使い、複数サーバーの設定作業を1コマンドで自動化できるようになります。
Chapter 1変数で設定を生成する
web.yml と nginx.conf.j2 を題材に、変数・テンプレート・差分確認・変数ファイルを学びます。
- vars と {{ }} — プレイブックを読むweb.yml の vars と、テンプレート nginx.conf.j2 の {{ }} を読みます。約8分(有料会員限定)
- テンプレートを生成して、中身を確かめるweb.yml を実行し、サーバー上に生成された設定ファイルを読みます。約8分(有料会員限定)
- -e で変数を上書きし、--check --diff で予告を見る実行時に http_port を変え、何が書き換わるかを差分で確認します。約9分(有料会員限定)
- group_vars と host_vars — 置き場所で範囲を決めるグループ別・ホスト別の変数ファイルを読み、--host で合成結果を確認します。約8分(有料会員限定)
- ホストごとに違うファイルを1枚のテンプレートからmotd.j2 を全台に配り、ホスト名やOSが埋め込まれた結果を差分で読みます。約7分(有料会員限定)
Chapter 2確認クイズ
変数・テンプレート・差分確認・変数ファイルを確認します。