ANSIBLE-如何通过使用with_items和清单组来生成“列表条目”列表

时间:2018-10-22 12:47:01

标签: ansible

我正在尝试使用with_items和某个清单组的主机列表来生成“列表条目”列表。例如:

如果我的清单中有两个主机

[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,在本例中为两个新元素。 我该如何工作?

预先感谢您, 碘酒

1 个答案:

答案 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 }}'

我希望这会有所帮助,但是我真的很需要您澄清您的要求。