获取Jinja2过滤器组中主机的IP列表

时间:2017-01-31 15:30:08

标签: ansible jinja2 ansible-facts

我正在构建一些角色,我需要将配置指定组中所有主机的IP地址作为逗号分隔字符串。

是否有一个jinja2组合的过滤器(如map,match,select,join等)产生与此相同的内容:

{% set comma = joiner(",") %}
{% for hostname in groups['mongodb'] %}
{{ comma() }}{{ hostvars[hostname].ansible_default_ipv4.address }}
{%- endfor %}

1 个答案:

答案 0 :(得分:6)

documentation ...

中有几乎完全答案

稍作修改,现在就去了:

- debug:
    msg: "{{ groups['mongodb'] | map('extract', hostvars, ['ansible_default_ipv4', 'address']) | join(',') }}"