Zugriff auf den Dict-Wert in der Variablen aus demselben Listenelement in Ansible

Zugriff auf den Dict-Wert in der Variablen aus demselben Listenelement in Ansible

Ich verwende Ansible, um einige virtuelle Maschinen bereitzustellen, und habe eine Listenvariable, die die VMs definiert. Ich frage mich, ob ich eines der Dict-Elemente ein anderes als Variable innerhalb desselben Listenelements verwenden lassen kann. Angenommen, ich habe die folgende Variable definiert:

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

Könnte ich stattdessen so etwas tun?

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

Ich habe das versucht und ich habe versucht, zu verwenden "{{ nodes.0.name }}".

Antwort1

Nein, das geht nicht. Sie müssen die Zeichenfolgen zur Laufzeit verketten. Zum Beispiel

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

(nicht getestet)

verwandte Informationen