ネストしたグループとchildrenキーワード
グループのグループによる階層を構築します
「ネストしたグループとchildrenキーワード」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
グループの中にグループ
別のグループから構成されるグループが必要になることがあります。Ansibleではこれをグループのグループと呼び、childrenキーワードで構築します。
INIのchildrenキーワード
INIでは、[prod:children]のような見出しで、ホストではなく別のグループ名をメンバーに持つ親グループを宣言します。
[prod:children]
web
db先に子グループを定義
子グループには、それぞれのホストを設定しておく必要があります。その後、親グループから名前で子グループを参照します。
[web]
web1.example.com
[db]
db1.example.comホストは親へ集約される
prodを対象にすると、Ansibleはwebとdbに含まれるすべてのホストへ到達します。1つの名前で環境全体を対象にできます。
ansible prod -i inventory.ini --list-hostsYAMLで入れ子にする
YAMLでは自然に入れ子を作れます。グループ自身のchildrenキーの下に複数のグループを記載でき、必要な深さまで入れ子にできます。
all:
children:
prod:
children:
web:
db:実際の階層を構築
リージョンと役割のような層を組み合わせます。datacenterにprodを含め、prodにwebとdbを含める構成です。インベントリが組織構造を反映します。
[datacenter:children]
prod
stagingホストはすべての親を継承
webがprodの子グループなら、webのホストはwebとprodとallに所属します。所属関係は自動的に上位へ伝わります。
変数は下位へ継承
親グループに変数を設定すると、より具体的なグループで上書きされない限り、すべての子ホストがその変数を継承します。
[prod:vars]
env=production循環する子関係を避ける
グループは、直接またはループを通じて、自分自身の子になることはできません。Ansibleは解析時に循環した階層を拒否します。
ツリーを確認
インベントリグラフを使うと、入れ子構造を明確に確認できます。--graphフラグで、親と子の関係がツリーとして描画されます。
ansible-inventory -i inventory.ini --graph階層で大規模化に対応
入れ子のグループを使うと、prodやweb-prodを正確に指定できます。管理対象が増えても、childrenによって広範囲と限定的な対象指定を両立できます。
確認テスト
webグループとdbグループをメンバーに持つ親グループが必要です。どのINI見出しを使いますか。
まとめ
childrenキーワードでグループを階層化できます。ホストはすべての親を継承し、グループ変数はツリーを下へ流れます。🌳
よくある質問
「ネストしたグループとchildrenキーワード」レッスンは無料ですか?
はい。「ネストしたグループとchildrenキーワード」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「ネストしたグループとchildrenキーワード」で何を学びますか?
グループのグループによる階層を構築します ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「ネストしたグループとchildrenキーワード」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- INIとYAMLのインベントリファイル
- ホストのグループ化:web、db、app
- ネストしたグループとchildrenキーワード
- インベントリのホスト変数とグループ変数