我想将一组 ip 连接成一个字符串。
例如 ip1:2181、ip2:2181、ip3:2181 等
{% for host in groups['zookeeper'] %}
{{ hostvars[host]['ansible_eth0']['ipv4']['address'] }}
{% endfor %}
我有上面的代码,但似乎无法弄清楚如何连接成一个字符串。
搜索 “Jinja2 连接” 没有给我我需要的信息。
最佳答案
更新了这个答案,因为我想我误解了你的问题。
如果你想用一些字符串连接每个主机的 IP,你可以使用 loop controls , 检查您是否在最后一次迭代中:
{% for host in groups['zookeeper'] -%}
{{ hostvars[host]['ansible_eth0']['ipv4']['address'] }}
{%- if not loop.last %}, {% endif -%}
{%- endfor %}
旧答案:
您要查找的字词是
join
:{{ hostvars[host]['ansible_eth0']['ipv4']['address'] | join(", ") }}
关于jinja2 - ansible jinja2 连接 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28231875/