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 定义为整数,则没有它任务将失败
各位,
我正在尝试通过使用 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 定义为整数,则没有它任务将失败