Адреса и сети это не пересекаемые списки, значения разные совсем.
- hosts: all gather_facts: false vars: ip_list: - 10.10.0.0/24 - 10.20.0.0/24 - 10.30.0.0/24 tasks: - name: debug debug: msg: "{{ ['10.0.10.2', '121.22.3.3', '10.20.0.10','10.30.0.4'] | ansible.utils.reduce_on_network(item)}}" delegate_to: localhost with_items: "{{ ip_list }}" ok: [zbx01 -> localhost] => (item=10.20.0.0/24) => { "msg": [ "10.20.0.10" ] } ok: [zbx01 -> localhost] => (item=10.30.0.0/24) => { "msg": [ "10.30.0.4" ] только вместо дебага set fact с новым массивом пересекающихся адерсов
В set fact залетает последнее значение, которое может быть пустым. Нужно как-то останавливать цикл при первом удачном сопоставлении.
ip_match_list: [] set_fact: ip_match_list: ip_match_list + item ну варантов много)
Например первый пример навскидку отсюда
Обсуждают сегодня