Sco*_*Sol 10 jinja2 ansible ansible-template
我正在编写一个Ansible模板,需要在主机组中生成一个ip列表,不包括当前主机IP.我在网上和文档中搜索过但我找不到任何允许您删除列表中项目的过滤器.我已经在下面创建了(hacky)for循环来做这个但是想知道是否有人知道像这样过滤的"最佳实践"方式.
{% set filtered_list = [] %}
{% for host in groups['my_group'] if host != ansible_host %}
{{ filtered_list.append(host)}}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
让我们说组['my_group']有3个ip(192.168.1.1,192.168.1.2和192.168.1.3).为192.168.1.1生成模板时,它应该只打印ip的192.168.1.2和192.168.1.3.
Kon*_*rov 20
有difference 过滤器:
- debug: var=item
with_items: "{{ groups['my_group'] | difference([inventory_hostname]) }}"
Run Code Online (Sandbox Code Playgroud)
这将为您提供来自my_group无当前主机的所有项目主机.