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

如何在yaml中创建动态列表?,yaml,ansible,ansible-playbook,Yaml,Ansible,Ansible Playbook,我正在尝试渲染一个模板。我必须创建一个列表作为 host: - '111.222.333.444' - '555.666.777.888' 必须从另一个主机文件中获取 我用的是这样的东西: {% for host in groups['hostgroup'] %} host: {{ host }} {% endfor %} 实现结果的正确方法是什么?假设您希望在清单中声明一个名为host的变量,该变量包含ip地址列表,您可以尝试: host: {{ groups['hostgroup'] }

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

host:
- '111.222.333.444'
- '555.666.777.888'
必须从另一个主机文件中获取

我用的是这样的东西:

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

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

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

host: {{ groups['hostgroup'] }}
或者,您可以跳过声明此变量,直接使用
{{groups['hostgroup']}
,无论您计划在哪里使用
{{host}}

如果你想引用的话,看看这个

编辑: 假设您正在使用ansible
template
模块呈现模板

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

这使我进入
host:['111.222.333.444','555.666.777.888']
我希望它采用问题中所示的格式。您正在尝试初始化
host
变量,还是正在呈现模板?呈现模板。编辑了我的答案,但是它似乎太简单了,我想你的意图是不同的。我真傻,竟然在for循环中有host:in。另请参见: