summaryrefslogtreecommitdiffstats
path: root/roles/ands_facts/tasks/find_interface_by_ip.yml
blob: ecfa3c3c347d61a2c317f2db8c346dae65747c27 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
- name: "Looking for interface holding {{ ip }}"
  set_fact:
    "{{ var }}": "{{ eth['device'] }}"
  vars:
    eth:     "{{ hostvars[inventory_hostname]['ansible_' + item] | default({}) }}"
    ipv4:    "{{ eth['ipv4'] | default({}) }}"
    q:       "{{ eth | json_query('ipv4_secondaries[*].address') }}"
    sec:     "{{ ((q == ands_none) or (q == '')) | ternary([], q) }}"
    ips:     "{{ sec  | union([ipv4.address]) }}"
  when: 
    - eth['type'] is defined
    - eth['ipv4'] is defined
    - eth['device'] is defined
    - eth['type'] == 'ether'
    - ip in ips
  with_items:
    - "{{ hostvars[inventory_hostname]['ansible_interfaces'] }}"
#  loop_control:
#    label: "{{ item }}"
#  no_log: true