Acceda al valor de dictado en la variable desde el mismo elemento de la lista en Ansible

Acceda al valor de dictado en la variable desde el mismo elemento de la lista en Ansible

Estoy usando Ansible para implementar algunas máquinas virtuales y tengo una variable de lista que define las máquinas virtuales. Me pregunto si puedo hacer que uno de los elementos del dict use otro como variable dentro del mismo elemento de la lista. Por ejemplo, digamos que tengo la siguiente variable definida:

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

¿Podría, en cambio, hacer algo como esto?

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

Lo intenté y probé a usar "{{ nodes.0.name }}".

Respuesta1

No, no puedes. Tendrás que concatenar las cadenas en tiempo de ejecución. Por ejemplo

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

(no probado)

información relacionada