0Pricing
Ansible Academy · レッスン

constructed:タグでホストをグループ化する

クラウドのメタデータからグループを作成します。

「constructed:タグでホストをグループ化する」はCoddyKit上の無料Ansible Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAnsible Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ansible Academyコースには全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: constructed

groups:式で構築する

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チューター)、Ansible Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Ansible Academyコースには全4レッスンが含まれています。

「constructed:タグでホストをグループ化する」で何を学びますか?

クラウドのメタデータからグループを作成します。 ブラウザで直接実行するハンズオンコードでAnsible Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Ansible Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのAnsible Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「constructed:タグでホストをグループ化する」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このAnsible Academyレッスンでコードを書いて実行できますか?

はい。すべてのAnsible Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

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

  1. 静的な制限と Inventory Plugin モデル
  2. aws_ec2 Inventory Plugin
  3. constructed:タグでホストをグループ化する
  4. キャッシュと複数の Inventory ソース
← Ansible Academyに戻る