
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)