meta/main.yml における Role の依存関係
他の Role を必要とする Role を連結します。
「meta/main.yml における Role の依存関係」はCoddyKit上の無料Ansible Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAnsible Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ansible Academyコースには全4レッスンが含まれています。
他のロールを必要とするロール
別のロールが先に実行されないと動作しないロールもあります。たとえば、アプリロールがデプロイする前に、ベースロールでサーバーを堅牢化する必要がある場合です。
meta/main.yml を確認する
すべてのロールには meta/main.yml ファイルを置けます。ここには作成者、対応プラットフォーム、依存関係などのロールメタデータを保存します。
dependencies キー
meta/main.yml の dependencies キーには、このロールより前に実行する必要があるロールを記述します。Ansible が自動的に先に適用します。
dependencies:
- role: common
- role: firewall依存関係は先に実行される
ロールを適用すると、Ansible はその dependencies を記述された順に先に実行し、その後でロール自身のタスクを実行します。
依存先に変数を渡す
依存先には、リスト内で直接変数を渡せます。ベースロールは、このロールが必要とする設定どおりに実行されます。
dependencies:
- role: nginx
vars:
http_port: 8080実際の依存関係チェーン
webapp ロールが nginx に依存し、nginx が common に依存しているとします。webapp を適用すれば、Ansible がチェーン全体を上から下まで自動的に解決します。
条件付きの依存関係
依存先には when 条件を付けられるため、一致するホストでのみ実行できます。たとえば、開発環境ではファイアウォールロールをスキップできます。
dependencies:
- role: firewall
when: env == 'prod'依存関係は静的に解決される
meta の dependencies は play の開始前に解決されます。後から収集する実行時の facts は利用できないため、条件は単純に保ちます。
Galaxy も meta を読み込む
Ansible Galaxy からロールをインストールすると、meta/main.yml が読み込まれ、そこに記載されたすべての依存関係が自動的に取得されます。
依存関係を正確に保つ
本当に先に実行する必要がある場合にだけ、ロールを依存関係として記載します。隠れたチェーンがあると、自動化の動作を把握したりデバッグしたりするのが難しくなります。
Galaxy の情報もここにある
依存関係だけでなく、meta/main.yml には galaxy_info も含まれます。ライセンス、最小 Ansible バージョン、対応プラットフォームなど、ロールの使い方を記録します。
クイックチェック
あるロールを別のロールより先に実行することを、どこで宣言するか思い出してみましょう。
まとめ
meta/main.yml の dependencies に必要なロールを記載すると、Ansible は変数や条件を任意で適用しながら、そのチェーンを先に実行します。🔗
よくある質問
「meta/main.yml における Role の依存関係」レッスンは無料ですか?
はい。「meta/main.yml における Role の依存関係」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Ansible Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Ansible Academyコースには全4レッスンが含まれています。
「meta/main.yml における Role の依存関係」で何を学びますか?
他の Role を必要とする Role を連結します。 ブラウザで直接実行するハンズオンコードでAnsible Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Ansible Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAnsible Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「meta/main.yml における Role の依存関係」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAnsible Academyレッスンでコードを書いて実行できますか?
はい。すべてのAnsible Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- meta/main.yml における Role の依存関係
- defaults と vars:上書き順序
- 実行時の include_role と import_role
- allow_duplicates と Role の冪等性