Ansible에서 변수를 사용하여 사전 키 생성

Ansible에서 변수를 사용하여 사전 키 생성

Hostvar에서 dict를 업데이트하려고 하는데 키 이름이 변수(노드)를 사용하여 구성됩니다. 예를 들어, 'node'가 1이면 hostvars['fakehost']['mydict']['localaddress1']를 업데이트하고 싶습니다. 내 코드는 다음과 같습니다.

- name: Read IPv4 of first interface
    add_host:
      name: "fakehost"
      telium: "{{ hostvars['fakehost']['mydict'] | combine ({ 'localaddress{{ node }}' : ansible_all_ipv4_addresses[0] }) }}"

구문에 대해 불평하는 ansible을 사용하여 localaddress{{node}}를 구성하는 방법을 알 수 없습니다.

답변1

콧수염( {{ }})을 중첩하지 마세요. 표현식 내부에 있으면 이미 Jinja 컨텍스트에 있는 것이므로 변수에 액세스할 때 추가 구분 기호를 사용하면 안 됩니다.

      telium: "{{ hostvars['fakehost']['mydict'] | combine ({ 'localaddress' ~ node: ansible_all_ipv4_addresses[0] }) }}

관련 정보