Ansible允许深层嵌套的dict,但实际上却不允许您从中获得更多使用!这是我的故事。
我正在尝试使用Ansible配置许多ini文件。为此,我正在使用ini_file
模块。此模块至少需要四个信息:
所以,我定义了一个字典:
vars:
conf:
"/etc/conf1.ini":
- section: main
option: foo
val: bar
- section: main
option: baz
val: qux
"/etc/otherconf.ini":
- section: options
option: flower
val: bird
以此类推。因此,我可以使用:
- name: Write ini files
ini_file:
path: "{{ item.0.key }}"
section: "{{ item.1.section }}"
option: "{{ item.1.option }}"
value: "{{ item.1.val }}"
loop: "{{ conf | dict2items | subelements('value') }}"
这...有效。我可以继续使用。 /etc/conf1.ini
的示例输出:
[main]
foo = bar
baz = qux
问题:还有更好的方法吗?如何组织数据以更好地使用Ansible循环(新样式)? (即以with_
开头的所有内容)
注意:我也真的不喜欢必须使用完全限定的路径作为dict键;我宁愿以某种方式例如 path: "/etc/conf1.ini"
。
注2:我不必将所有这些都放在一个变量conf
中,但是如果每个ini文件只有一个变量,该如何循环那个? < / p>