在Ansible中,要在循环中使用变量中的变量,可以使用with_items
迭代变量,并在item
中使用变量。下面是一个包含代码示例的解决方法:
- name: 设置主机变量
hosts: localhost
gather_facts: False
vars:
var1: "foo"
var2: "bar"
item1: "{{ var1 }}"
item2: "{{ var2 }}"
tasks:
- name: 显示变量中的变量
debug:
msg: "变量 {{ item }} 的值是 {{ vars[item] }}"
with_items:
- item1
- item2
在这个示例中,我们定义了两个变量var1
和var2
,然后将它们赋值给item1
和item2
。在循环中,我们使用with_items
迭代item1
和item2
,并在debug
任务中使用vars[item]
来访问变量中的变量。
运行这个Playbook后,将会输出以下内容:
TASK [显示变量中的变量] **********************************
ok: [localhost] => (item=item1) => {
"msg": "变量 item1 的值是 foo"
}
ok: [localhost] => (item=item2) => {
"msg": "变量 item2 的值是 bar"
}
这样就可以在循环中使用变量中的变量了。