
Estou usando o Ansible para implantar algumas máquinas virtuais e tenho uma variável de lista que define as VMs. Estou me perguntando se posso fazer com que um dos itens do dict use outro como variável dentro do mesmo elemento da lista. Por exemplo, digamos que eu tenha a seguinte variável definida:
nodes:
- name: vm1
aliases:
- vm1
- vm1.local
- name: vm2
aliases:
- vm2
- vm2.local
Eu poderia, em vez disso, fazer algo assim?
nodes:
- name: vm1
aliases:
- "{{ name }}"
- "{{ name }}.local"
- name: vm2
aliases:
- "{{ name }}"
- "{{ name }}.local"
Eu tentei isso e tentei usar "{{ nodes.0.name }}"
.
Responder1
Não. Você não pode. Você terá que concatenar as strings em tempo de execução. Por exemplo
- debug:
msg: "vm:{{ item.0 }} alias:{{ item.0 }}{{ item.1 }}"
with_subelements:
- "{{ nodes }}"
- aliases
vars:
nodes:
- name: vm1
aliases:
- ""
- ".local"
- name: vm2
aliases:
- ""
- ".local"
(não testado)