Доступ к значению dict в переменной из того же элемента списка в Ansible

Доступ к значению dict в переменной из того же элемента списка в Ansible

Я использую Ansible для развертывания некоторых виртуальных машин, и у меня есть переменная списка, определяющая виртуальные машины. Мне интересно, могу ли я сделать так, чтобы один из элементов словаря использовал другой как переменную в том же элементе списка. Например, предположим, что у меня определена следующая переменная:

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"

(не испытано)

Связанный контент