Fre*_*ris 3 jinja2 ansible ansible-facts
我正在构建一些角色,我需要将配置指定组中所有主机的IP地址作为逗号分隔的字符串.
是否存在jinja2过滤器组合(如map,match,select,join等),它们产生如下:
{% set comma = joiner(",") %}
{% for hostname in groups['mongodb'] %}
{{ comma() }}{{ hostvars[hostname].ansible_default_ipv4.address }}
{%- endfor %}
Run Code Online (Sandbox Code Playgroud)
文档中几乎有确切的答案......
稍作修改,在这里你去:
- debug:
msg: "{{ groups['mongodb'] | map('extract', hostvars, ['ansible_default_ipv4', 'address']) | join(',') }}"
Run Code Online (Sandbox Code Playgroud)