Ansible 迭代主机清单中定义的变量**仅**
我想迭代ansible剧本的清单文件中定义的变量。事实上,在我的清单中,我定义了一些变量放在.ini中 目标主机上的文件。我的库存文件中有类似的内容:Ansible 迭代主机清单中定义的变量**仅**,ansible,Ansible,我想迭代ansible剧本的清单文件中定义的变量。事实上,在我的清单中,我定义了一些变量放在.ini中 目标主机上的文件。我的库存文件中有类似的内容: [myhost:vars] VAR1=VALUE1 VAR2=VALUE2 我试过这样的方法: - name: fill ini file with variables ini_file: path: "{{ myfile.ini }}" section: vars option: "{{ item.key }}"
[myhost:vars]
VAR1=VALUE1
VAR2=VALUE2
我试过这样的方法:
- name: fill ini file with variables
ini_file:
path: "{{ myfile.ini }}"
section: vars
option: "{{ item.key }}"
value: "{{ item.value }}"
create: yes
with_dict: "{{ hostvars[inventory_hostname] }}"
myfile.ini最后应该是这样的:
[vars]
VAR1=VALUE1
VAR2=VALUE2
问题是:我有'VAR1'和'VAR2',但也有主机的所有Ansible变量。我只想对中定义的那些进行迭代
库存量是多少?不存在
任何帮助都将不胜感激:无法确定是否设置了某个事实/变量,也无法根据其来源对其进行筛选 相反,您可以在清单中定义字典JSON:
[myhost]
localhost
[myhost:vars]
my_dict={"VAR1": "VALUE1", "VAR2": "VALUE2"}
并在迭代器中使用它:
with_dict: "{{ my_dict }}"
请注意,在您的示例中,dict缩进错误。请定义字典,而不是不相关的键对。@techraf您能详细说明一下吗?举个例子就好了我是Ansible的初学者