在 Ansible 中,是否可以测试 IP 地址是否属于子网列表的一部分?
即:我有一个子网列表
['10.10.10.0/24','10.10.12.0/24']
和一个 IP 地址:10.10.12.8
。
如何使用
when
语句测试 IP 地址是否属于子网的一部分?
ansible.utils
集合中,实际上,您可以在该集合中找到的第一个 test 就是测试 in_any_network
,它将帮助您实现所需的目标。
鉴于:
- ansible.builtin.debug:
msg: "{{ _ip }} is in {{ _networks }}"
when: _ip is ansible.utils.in_any_network _networks
vars:
_ip: 10.10.12.8
_networks: ['10.10.10.0/24','10.10.12.0/24']
您将得到:
ok: [localhost] =>
msg: 10.10.12.8 is in ['10.10.10.0/24', '10.10.12.0/24']