如何在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}}
如果你想引用的话,看看这个
编辑:
假设您正在使用ansibletemplate
模块呈现模板
host:
{% for host in groups['hostgroup'] %}
- '{{ host }}'
{% endfor %}
这使我进入
host:['111.222.333.444','555.666.777.888']
我希望它采用问题中所示的格式。您正在尝试初始化host
变量,还是正在呈现模板?呈现模板。编辑了我的答案,但是它似乎太简单了,我想你的意图是不同的。我真傻,竟然在for循环中有host:in。另请参见: