Ansible 迭代主机清单中定义的变量**仅**

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 }}"

我想迭代ansible剧本的清单文件中定义的变量。事实上,在我的清单中,我定义了一些变量放在.ini中 目标主机上的文件。我的库存文件中有类似的内容:

[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的初学者