如果我的清单中有两个主机
[myservice]
10.0.0.1
10.0.0.2
然后我要通过执行以下操作来创建Yaml列表
service_clients:
- connection_type: "local"
database: "all"
user: "bob"
address:"127.0.0.1/32"
- connection_type: "host"
database: "all"
user: "all"
address: "::1/128"
- connection_type: "host"
database: "myservicedb"
user: "all"
address: "{{ item }}/24"
with_items: "{{groups['myservice']}}"
尽管如此,以上操作仍然失败。我无法遍历主机列表并创建X,在本例中为两个新元素。 我该如何工作?
预先感谢您, 碘酒
答案 0 :(得分:0)
您的要求非常模糊。对于一个简单的配置文件,我想您需要使用Jinja的{% for %}
功能。对于特定类型的迭代(只需以逗号分隔即可),可以使用Jinja的|join()
过滤器。
但是您已经要求一种通过with_items
创建列表的方法。
这里是一种用with_items
构造列表的方法:
- name: Processing list
set_fact:
my_new_list: '{{ my_new_list|default([]) + [item] }}'
with_items: '{{ groups.myservice }}'
我希望这会有所帮助,但是我真的很需要您澄清您的要求。