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

How to create dynamic list in yaml?

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

host:
- '111.222.333.444'
- '555.666.777.888'

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

我正在使用这样的东西:

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

获得结果的正确方法是什么?

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

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

或者您可以跳过声明此变量并在您计划使用 {{ host }}

的任何地方直接使用 {{ groups['hostgroup'] }}

如果需要引用,请查看 and this filter plugin

编辑: 假设你正在渲染一个模板,使用 ansible template 模块

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