Ansible遍历由变量设置的清单组中的主机 [英] Ansible iterate over hosts in inventory group set by variable
本文介绍了Ansible遍历由变量设置的清单组中的主机的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的角色模板中有下一个代码段:
I have the next snippet in my role template:
upstream portal {
{% set nodes = groups["my_dev_cluster"] %}
{% for node in nodes %}
...do something with nodes...
{% endfor %}
}
它很好用。
但是当我尝试如下配置库存组名称:
But when I try to parametrize inventory group name like this:
upstream portal {
{% set nodes = groups["{{cluster_name}}"] %}
{% for node in nodes %}
...do something with nodes...
{% endfor %}
}
我遇到类似这样的异常:
I get an exception like:
FAILED! => {"changed": false, "failed": true, "msg": "AnsibleUndefinedVariable: 'dict object' has no attribute '{{cluster_name}}'"}
此处,集群名称-是在默认值部分中定义的简单字符串变量。
Here, cluster_name - is a simple string variable defined in defaults section.
完全可以参数化吗?
预先感谢!
推荐答案
您不需要 {{...}}
,因为您已经在jinja上下文中(在这种情况下, {%set ...%}
块,只需输入:
You don't need {{...}}
because you're already inside a jinja context (in this case, the {% set ... %}
block. Just write:
{% set nodes = groups[cluster_name] %}
这篇关于Ansible遍历由变量设置的清单组中的主机的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文