Role の適用と Role 変数の受け渡し
Role を組み込み、パラメーター化します。
「Role の適用と Role 変数の受け渡し」はCoddyKit上の無料Ansible Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAnsible Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ansible Academyコースには全4レッスンが含まれています。
roles:でロールを適用する
ロールを使う最も簡単な方法は、Play内のrolesキーです。ロール名を一覧にすると、Ansibleがそれぞれを順番に実行します。
- hosts: web
roles:
- nginx
- firewallロールはタスクより先に実行される
rolesの下に記述したロールは、同じPlay内のタスクより先に実行されます。ロールとタスクを混在させるときは、この順序を意識しましょう。
変数をインラインで渡す
ロールをカスタマイズするには、適用する場所で変数を渡します。Ansibleがその値をロールに渡し、ロールのデフォルト値を上書きします。
roles:
- role: nginx
nginx_port: 8080role:キーで明示する
変数を渡すときは、roleキーでロール名を指定し、その下に変数を同じ階層のキーとして追加します。
- role: postgres
db_name: shop
db_user: adminデフォルトは代替値
変数を渡さなかった場合、ロールはdefaults/main.ymlにある値を使用します。これが、すべてのロールをすぐに使える理由です。
同じロールを2回、別の設定で適用する
1つのロールを異なる変数で複数回適用できます。たとえば、1つのロールから2つのデータベースインスタンスを構成できます。
グループ変数もロールに渡される
group_varsとhost_varsの変数は、それらのホストに適用されるロールへ自動的に渡されます。インラインで渡す必要はありません。
vars_filesでPlayを整理する
vars_filesを使ってロールの設定をPlayから別のファイルに分離すると、Playbookを短く読みやすく保てます。
vars_files:
- web_settings.ymlinclude_roleでPlayの途中に実行する
タスクの途中でロールを実行したい場合は、タスクとしてinclude_roleを使い、その位置で動的に適用します。
- name: Set up nginx
ansible.builtin.include_role:
name: nginx受け付ける変数を文書化する
優れたロールは、必要とする変数をREADMEに一覧化します。明確な入力があれば、誰でも簡単かつ安全にロールを再利用できます。
1つのロールを多数のサーバーで使う
同じパラメーター化されたロールを多数のホストに適用し、それぞれを異なる変数で調整できます。タスクを1つも書き直さずに再利用できます。
クイックチェック
ロールを適用するとき、デフォルト値を上書きする方法について考えてみましょう。
まとめ
rolesキーでロールを適用し、変数をインラインで渡してデフォルト値を上書きします。パラメーター化した1つのロールを多数のホストで再利用できます。🚀
よくある質問
「Role の適用と Role 変数の受け渡し」レッスンは無料ですか?
はい。「Role の適用と Role 変数の受け渡し」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Ansible Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Ansible Academyコースには全4レッスンが含まれています。
「Role の適用と Role 変数の受け渡し」で何を学びますか?
Role を組み込み、パラメーター化します。 ブラウザで直接実行するハンズオンコードでAnsible Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Ansible Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAnsible Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「Role の適用と Role 変数の受け渡し」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAnsible Academyレッスンでコードを書いて実行できますか?
はい。すべてのAnsible Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- なぜ Role なのか:モノリスからモジュールへ
- Role ディレクトリの構成
- ansible-galaxy init で Role のひな形を作る
- Role の適用と Role 変数の受け渡し