実現したいこと
ansible-playbookで、dictに入っているkeyごとにloopを実施し、valueに入っているホスト名でtaskを実行したい
現在下記のように、keyにrack id、valueにホストが定義されています。
- set_fact: rack_dict: "01": ["host01","host02"] "02": ["host03", "host04", "host05"]
playbook.yml
yaml
1- hosts: all 2 become: yes 3 tasks: 4 - name: set variable 5 set_fact: 6 rack_dict: 7 "01": ["host01","host02"] 8 "02": ["host03", "host04", "host05"] 9 10 - name: loop by rack_id 11 vars: 12 host_list: "{{ item.value }}" 13 include_tasks: tasks_rack.yml 14 run_once: True 15 with_dict: "{{ rack_dict }}" 16 loop_control: 17 label: "{{ item.key }}"
tasks_rack.yml
yaml
1- block: 2 - name: 3 shell: hostname 4 check_mode: no 5 delegate_to: host_list
下記を実現したいと思っています。
- rack (key)ごとに実行
- hostname (value)を実行ホスト
発生している問題・分からないこと
delegate_toが単一ホストを期待されているためか、これは動きません。
どのように実現したらいいでしょうか?
該当のソースコード
特になし
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
include_tasksにdelegate_to: "{{ item.value }}"
を記載してもだめでした。
補足
特になし
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/08/01 13:06
2024/08/01 13:11