0Pricing
DevOps Bootcamp · レッスン

ネストしたグループと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-hosts

YAMLで入れ子にする

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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. INIとYAMLのインベントリファイル
  2. ホストのグループ化:web、db、app
  3. ネストしたグループとchildrenキーワード
  4. インベントリのホスト変数とグループ変数
← DevOps Bootcampに戻る