检查子网列表中的地址部分是否为

问题描述 投票:0回答:1

在 Ansible 中,是否可以测试 IP 地址是否属于子网列表的一部分?
即:我有一个子网列表

['10.10.10.0/24','10.10.12.0/24']
和一个 IP 地址:
10.10.12.8

如何使用

when
语句测试 IP 地址是否属于子网的一部分?

ansible
1个回答
0
投票

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']
© www.soinside.com 2019 - 2024. All rights reserved.