如何在yaml中创建动态列表?

时间:2015-04-17 16:29:00

标签: yaml ansible ansible-playbook

我正在尝试渲染模板。我必须创建一个列表

host:
- '111.222.333.444'
- '555.666.777.888'

必须从另一个主机文件中获取。

我正在使用这样的东西:

{% for host in groups['hostgroup'] %}
host: {{ host }}
{% endfor %}

实现结果的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

假设您希望在名为host的库存中声明一个包含IP地址列表的变量,您可以尝试:

host: {{ groups['hostgroup'] }}

或者您可以跳过声明此变量并直接在您计划使用{{ groups['hostgroup'] }}

的任何地方使用{{ host }}

如果您需要报价,请查看add-quotes-join thread和此filter plugin

修改: 假设您正在使用ansible template模块

渲染模板
host:
{% for host in groups['hostgroup'] %}
 - '{{ host }}'
{% endfor %}