나는 ansbile inv를 가지고 있습니다
# cat inv
[all]
vm1
vm2
Jinja 템플릿을 사용하여 쉼표로 구분된 목록으로 추출하고 싶습니다.
그래서 jinja 템플릿을 추가했습니다.
# cat comb_list.j2
{{ groups['all'] | map('extract', hostvars, ['item']) | join(',') }}"
하지만 항목이 호스트 변수가 아닌 것 같아서 오류가 발생합니다.
최종 파일이 다음과 같기를 원합니다
# cat comb_list
vm1,vm2
답변1
주형
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