
我正在使用 Ansible 部署一些虛擬機,並且有一個定義虛擬機的列表變數。我想知道是否可以讓其中一個字典項使用另一個字典項作為同一列表元素中的變數。例如,假設我定義了以下變數:
nodes:
- name: vm1
aliases:
- vm1
- vm1.local
- name: vm2
aliases:
- vm2
- vm2.local
我可以做這樣的事情嗎?
nodes:
- name: vm1
aliases:
- "{{ name }}"
- "{{ name }}.local"
- name: vm2
aliases:
- "{{ name }}"
- "{{ name }}.local"
我嘗試過,並且嘗試使用"{{ nodes.0.name }}"
.
答案1
不,你不能。您必須在運行時連接字串。例如
- debug:
msg: "vm:{{ item.0 }} alias:{{ item.0 }}{{ item.1 }}"
with_subelements:
- "{{ nodes }}"
- aliases
vars:
nodes:
- name: vm1
aliases:
- ""
- ".local"
- name: vm2
aliases:
- ""
- ".local"
(未測試)