constructed:タグでホストをグループ化する
クラウドのメタデータからグループを作成します。
「constructed:タグでホストをグループ化する」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
生のホスト一覧だけでは不十分
EC2 インスタンスの単純な一覧では、対象を指定しにくいものです。各ホストのメタデータから、webservers や production のようなグループを作成したいでしょう。
グループ化する2つの方法
aws_ec2 プラグイン内で keyed_groups を使ってグループ化するか、より高度なロジックのために constructed プラグインを上に重ねることができます。
タグから keyed_groups を作成する
keyed_groups オプションを使うと、タグの値が自動的にグループ名になります。値ごとに1つのグループが作成されます。
keyed_groups:
- key: tags.Environment
prefix: envプレフィックスで名前を整理する
env のような prefix を付けると、値 prod はグループ env_prod になります。これにより、クラウドのタグが独自のグループ名と衝突するのを防げます。
constructed プラグイン
constructed プラグインは、別の情報源がホストを読み込んだ後、Jinja2 を使って既存のホストにグループと変数を追加します。
plugin: constructedgroups:式で構築する
groups の下では、Jinja2 の式によって所属を判定します。式の結果が true になるホストが、そのグループに追加されます。
groups:
is_prod: "tags.Environment == 'prod'"compose:ホスト変数を設定する
compose キーでは式から新しいホスト変数を設定できます。たとえば、後で使うアプリ名をタグから導出できます。
compose:
app: tags.Service | default('unknown')ここでも keyed_groups を使える
constructed は keyed_groups にも対応しているため、すでに存在する任意のファクトや変数から動的なグループ名を生成できます。
strict で誤りを検出する
strict: true を設定すると、不正な式を黙って無視せず、エラーとして明確に通知できます。グループ化するはずだったホストを誤って除外することもありません。
strict: trueグループをきれいに対象指定する
グループができたら、静的なホスト一覧をどこにも記述せず、hosts: is_prod のように自然な形で、そのグループを対象にプレイを記述できます。
- hosts: is_prod
roles:
- webserver順番に情報源を連結する
Ansible にインベントリファイルのディレクトリを指定します。aws_ec2 を先に読み込み、その後 constructed がホストにグループを追加します。
クイックチェック
タグからグループを自動作成するオプションを思い出してください。
まとめ
keyed_groups を使い、constructed プラグインの groups と compose で、クラウドタグを整理された対象指定可能な Ansible グループに変換します。🏷️
よくある質問
「constructed:タグでホストをグループ化する」レッスンは無料ですか?
はい。「constructed:タグでホストをグループ化する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「constructed:タグでホストをグループ化する」で何を学びますか?
クラウドのメタデータからグループを作成します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「constructed:タグでホストをグループ化する」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 静的な制限と Inventory Plugin モデル
- aws_ec2 Inventory Plugin
- constructed:タグでホストをグループ化する
- キャッシュと複数の Inventory ソース