30 lines
910 B
YAML
30 lines
910 B
YAML
---
|
|
- name: Preflight checks
|
|
block:
|
|
- name: Collecting all nebula_internal_ip_addr values
|
|
set_fact:
|
|
sorted_ips: >-
|
|
{{ hostvars
|
|
| dict2items
|
|
| selectattr('value.nebula_internal_ip_addr', 'defined')
|
|
| map(attribute='value.nebula_internal_ip_addr')
|
|
| list
|
|
| sort
|
|
}}
|
|
|
|
- name: Initialize duplicated_ips list
|
|
set_fact:
|
|
duplicated_ips: []
|
|
|
|
- name: Looking for duplicate IP addresses
|
|
set_fact:
|
|
duplicated_ips: "{{ duplicated_ips + [item] }}"
|
|
loop: "{{ sorted_ips | unique }}"
|
|
when: "sorted_ips | select('equalto', item) | list | length > 1"
|
|
|
|
- name: Fail if duplicate IP addresses are found
|
|
fail:
|
|
msg: "You have one or more hosts with duplicate IP addresses assigned: {{ duplicated_ips }}"
|
|
when: duplicated_ips | length > 0
|
|
run_once: true
|