summaryrefslogtreecommitdiffstats
path: root/roles/ands_idm/tasks/find_interface_by_net.yml
blob: ad44578a4635eb4a154e92dee346b0ffd628c0b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
- name: "Looking for interface holding {{ net }}"
  set_fact:
    "{{ var }}": "{{ eth['device'] }}"
  vars:
    eth:     "{{ hostvars[inventory_hostname]['ansible_' + item] | default({}) }}"
    ipv4:    "{{ eth['ipv4'] | default({}) }}"
    q:       "{{ eth | json_query('ipv4_secondaries[*].network') }}"
    sec:     "{{ ((q == ands_none) or (q == '')) | ternary([], q) }}"
    nets:     "{{ sec  | union([ipv4.network]) }}"
  when: 
    - eth['type'] is defined
    - eth['ipv4'] is defined
    - eth['device'] is defined
    - eth['type'] == 'ether'
    - net | ipaddr('network') in nets
  with_items:
    - "{{ hostvars[inventory_hostname]['ansible_interfaces'] }}"