在ansible模板中使用动态组名称

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在ansible模板中使用动态组名称相关的知识,希望对你有一定的参考价值。

我正在共同提供多个Kafka集群。每个集群都需要包含唯一的代理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_name在我的清单中定义,并且调试var = zookeeper_cluster_name表明它正在进入我的角色。解析器不断吐出错误,而且我似乎找不到正确的语法来通过变量指定组。有谁碰巧知道这是否可能?如果有人举了一个例子(或者更好的方法),我一定会感谢您的圣人智慧。

答案

您正在jinja2表达式中使用变量。在这种情况下,您只需使用变量名。

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

以上是关于在ansible模板中使用动态组名称的主要内容,如果未能解决你的问题,请参考以下文章

Ansible-inventory gcp_compute 插件下划线添加到主机组名称

ansible模板等使用方法

3,Ansible---动态Inventory

如何在Ansible中使用静态和动态库存

Ansible 之动态Inventory文件

Ansible-06-模板