쉼표로 구분된 목록에 인벤토리 항목을 추가하는 방법은 무엇입니까?

쉼표로 구분된 목록에 인벤토리 항목을 추가하는 방법은 무엇입니까?

나는 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

관련 정보