
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)