Ansible

如何在逗號分隔列表中加入庫存項目?

  • September 19, 2021

我有 ansbile inv

# cat inv
[all]
vm1
vm2

我想使用 Jinja 模板將它們提取到逗號分隔的列表中

所以我添加了神社模板

# cat comb_list.j2

{{ groups['all'] | map('extract', hostvars, ['item']) | join(',') }}"

但我猜項目不是主機變數,所以會拋出錯誤

我希望最終文件看起來像這樣

# cat comb_list
vm1,vm2

模板

shell> cat comb_list.j2
{{ groups.all|join(',') }}

和劇本

shell> cat playbook.yml
- hosts: all
 gather_facts: false
 tasks:
   - template:
       src: comb_list.j2
       dest: comb_list
     delegate_to: localhost
     run_once: true

shell> ansible-playbook -i inv playbook.yml
...

shell> cat comb_list
vm1,vm2

引用自:https://unix.stackexchange.com/questions/669696