3

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

是否有过滤器的 jinja2 组合(如映射、匹配、选择、连接等)产生与此相同的结果:

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

1 回答 1

6

文档中几乎有确切的答案...

稍作修改,就可以了:

- debug:
    msg: "{{ groups['mongodb'] | map('extract', hostvars, ['ansible_default_ipv4', 'address']) | join(',') }}"
于 2017-01-31T15:40:48.157 回答