Ansible在由变量设置的库存组中的主机上迭代

Ansible在由变量设置的库存组中的主机上迭代,ansible,ansible-inventory,ansible-facts,ansible-template,Ansible,Ansible Inventory,Ansible Facts,Ansible Template,我的角色模板中有下一个代码段: upstream portal { {% set nodes = groups["my_dev_cluster"] %} {% for node in nodes %} ...do something with nodes... {% endfor %} } 而且效果很好 但当我尝试参数化库存组名称时,如下所示: upstream portal { {% set nodes = groups["{{cluster_name}}"] %} {% for

我的角色模板中有下一个代码段:

upstream portal {
 {% set nodes = groups["my_dev_cluster"] %}
 {% for node in nodes %}
 ...do something with nodes...
 {% endfor %}
}
而且效果很好

但当我尝试参数化库存组名称时,如下所示:

upstream portal {
 {% set nodes = groups["{{cluster_name}}"] %}
 {% for node in nodes %}
 ...do something with nodes...
 {% endfor %}
}
我得到一个例外,比如:

 FAILED! => {"changed": false, "failed": true, "msg": "AnsibleUndefinedVariable: 'dict object' has no attribute '{{cluster_name}}'"}
这里,cluster\u name-是默认值部分中定义的一个简单字符串变量

有可能将其参数化吗


提前谢谢

您不需要
{{…}
,因为您已经在jinja上下文中(在本例中,
{%set…%}
块中。只需编写:

{% set nodes = groups[cluster_name] %}