第3章 Satellite からの Ansible Playbook の実行
Satellite でリモートジョブを実行することにより、ホストまたはホストグループで Ansible Playbook を実行できます。
Ansible Playbook ジョブテンプレートのホストパラメーターの制限
複数のホストで Ansible Playbook を実行すると、Satellite はバッチ内のすべてのホストに対して Playbook をレンダリングしますが、バッチ内のすべてのホストで実行するために最初のホストのレンダリングされた Playbook のみを使用します。したがって、テンプレート制御フロー構造でホストパラメーターを使用して、ホストごとに Playbook の動作を変更することはできません。ホストパラメーターは Ansible 変数に変換されるため、ネイティブ Ansible 構造の動作を制御するために使用できます。詳細は、BZ#2282275 を参照してください。
前提条件
- Satellite の Ansible プラグインが有効になっている。
- リモートジョブ実行が設定されている。詳細は、4章リモートジョブの設定およびセットアップ を参照してください。
- 使用する準備が完了している Ansible Playbook がある。
手順
- Satellite Web UI で、Monitor > Jobs に移動します。
- Run Job をクリックします。
-
Job category で、
Ansible Playbookを選択します。 -
Job template で、
Ansible - Run playbookを選択します。 - Next をクリックします。
- Playbook を実行するホストを選択します。
- Playbook フィールドに、Ansible Playbook の内容を貼り付けます。
- ウィザードに従ってリモートジョブの設定を完了します。詳細は、4章リモートジョブの設定およびセットアップ を参照してください。
- Submit をクリックして、ホストで Ansible Playbook を実行します。
関連情報
または、Capsule Server から Ansible Playbook をインポートすることもできます。詳細は、以下の資料を参照してください。
- 「Ansible Playbook のホストパラメーター」
3.1. Ansible Playbook のホストパラメーター リンクのコピーリンクがクリップボードにコピーされました!
Ansible Playbook で Satellite からのホストパラメーターを使用できます。
ホストパラメーターにアクセスするための Ansible Playbook の例
---
- name: "Ansible Playbook to access host parameters"
hosts: all
tasks:
- name: "View a host parameter"
ansible.builtin.debug:
msg: "{{ hostvars[inventory_hostname]['My_Host_Parameter'] }}"
...
Ansible はホストパラメーターにアクセスし、その値を表示します。ホストパラメーターを ERB テンプレート (例: <%= @host.capabilities.include?(:snapshots) %>) に設定すると、Satellite はそれをレンダリングし、結果を Ansible に提供します。Ansible は ERB テンプレート自体ではなく、レンダリングされた値のみを受け取ります。
関連情報