Ansible의 동일한 목록 항목에서 변수의 dict 값에 액세스

Ansible의 동일한 목록 항목에서 변수의 dict 값에 액세스

저는 Ansible을 사용하여 일부 가상 머신을 배포하고 있으며 VM을 정의하는 목록 변수가 있습니다. dict 항목 중 하나가 동일한 목록 요소 내에서 다른 항목을 변수로 사용하도록 할 수 있는지 궁금합니다. 예를 들어 다음과 같은 변수가 정의되어 있다고 가정해 보겠습니다.

nodes:
  - name: vm1
    aliases:
      - vm1
      - vm1.local
  - name: vm2
    aliases:
      - vm2
      - vm2.local

대신에 이런 일을 할 수 있을까요?

nodes:
  - name: vm1
    aliases:
      - "{{ name }}"
      - "{{ name }}.local"
  - name: vm2
    aliases:
      - "{{ name }}"
      - "{{ name }}.local"

나는 그것을 시도하고 "{{ nodes.0.name }}".

답변1

아뇨. 그럴 수 없어요. 런타임에 문자열을 연결해야 합니다. 예를 들어

  - debug:
      msg: "vm:{{ item.0 }} alias:{{ item.0 }}{{ item.1 }}"
    with_subelements:
      - "{{ nodes }}"
      - aliases
    vars:
      nodes:
        - name: vm1
          aliases:
            - ""
            - ".local"
        - name: vm2
          aliases:
            - ""
            - ".local"

(검증되지 않은)

관련 정보