0Pricing
Ansible Academy · レッスン

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: 8080

role:キーで明示する

変数を渡すときは、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.yml

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

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

  1. なぜ Role なのか:モノリスからモジュールへ
  2. Role ディレクトリの構成
  3. ansible-galaxy init で Role のひな形を作る
  4. Role の適用と Role 変数の受け渡し
← Ansible Academyに戻る