在ansible模板中使用动态组名

在ansible模板中使用动态组名,ansible,Ansible,我正在安排一个角色来提供几个卡夫卡集群。每个集群都需要包含唯一的代理ID以及zookeeper节点列表。下面是我用来定义zookeeper节点的一个片段: zookeeper.connect={% for host in groups['zookeeper'] -%} {{ host }}:2181{% if not loop.last %},{% endif %} {%- endfor %} 我正试图找到一种方法,用类似于以下内容的内容来替换组['zookeeper']: zookeeper

我正在安排一个角色来提供几个卡夫卡集群。每个集群都需要包含唯一的代理ID以及zookeeper节点列表。下面是我用来定义zookeeper节点的一个片段:

zookeeper.connect={% for host in groups['zookeeper'] -%} {{ host }}:2181{% if not loop.last %},{% endif %} {%- endfor %}
我正试图找到一种方法,用类似于以下内容的内容来替换组['zookeeper']:

zookeeper.connect={% for host in groups[{{ zookeeper_cluster_name }}] -%} {{ host }}:2181{% if not loop.last %},{% endif %} {%- endfor %}

zookeeper_cluster_名称在我的资源清册中定义,debug var=zookeeper_cluster_名称表明它正在进入我的角色。解析器不断地抛出错误,我似乎找不到通过变量指定组的正确语法。有人知道这是否可能吗?如果有人有一个例子(或者更好的方法),我一定会感谢你的智慧。

你在jinja2表达式中使用了一个变量。在本例中,只需使用变量名

zookeeper.connect={% for host in groups[zookeeper_cluster_name] -%} {{ host }}:2181{% if not loop.last %},{% endif %} {%- endfor %}

啊!非常感谢你发现了这一点。回答得很好!