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

Я использую Ansible для развертывания некоторых виртуальных машин, и у меня есть переменная списка, определяющая виртуальные машины. Мне интересно, могу ли я заставить один из элементов 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"

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

Другие вопросы по тегам