Ansible - 在组内定义变量

Ansible - define variable inside groups

各位,

我正在尝试通过使用 Ansible 中的组参数来实现以下目标。

{{ groups['kafka'] | map('extract',hostvars,'ansible_host') | list | join(':{{ zookeeper_port }},') + ':{{ zookeeper_port }}' }}

变量 zookeeper_port 给出为:

zookeeper_port: 2181

虽然 运行 我的剧本包含上述组参数,但它给我的结果是:

IP:{{ zookeeper_port }},IP:{{ zookeeper_port }}

相反,我试图获得如下结果:

IP:2181,IP:2181

谁能帮我弄清楚我的组参数声明出了什么问题。

''{{}} 内的任何内容都被视为文字字符串。要访问变量,您可以立即键入它们 - 周围没有任何字符。在你的情况下你需要这样的东西:

{{ groups['kafka'] | map('extract',hostvars,'ansible_host') | list | join(':' + zookeeper_port|string + ',') + ':' + zookeeper_port|string }}"

注意 string 过滤器 - 如果您的 zookeeper_port 定义为整数,则没有它任务将失败