]> git.apps.os.sepia.ceph.com Git - ceph-cm-ansible.git/commitdiff
nameserver: Check for and print IP collisions 665/head
authorDavid Galloway <dgallowa@redhat.com>
Wed, 19 Jan 2022 17:48:51 +0000 (12:48 -0500)
committerDavid Galloway <dgallowa@redhat.com>
Wed, 19 Jan 2022 18:23:25 +0000 (13:23 -0500)
Signed-off-by: David Galloway <dgallowa@redhat.com>
roles/nameserver/tasks/main.yml
roles/nameserver/tasks/records.yml

index 2abf5c83bcbd96bbaba5e68865f0c4870eb22b3d..a5bdf258f3dcf6032da6417d989ed801bde389d8 100644 (file)
     - records
   when: (named_conf_slave is undefined) or
         (named_conf_slave is defined and named_conf_slave == false)
+
+# The tasks below are last so the grep output is near the end of the play
+- set_fact:
+    have_collisions: true
+  when:
+    - (named_conf_slave is undefined) or (named_conf_slave is defined and named_conf_slave == false)
+    - nameserver_collisions_grep is defined and nameserver_collisions_grep.stdout | length > 0
+  tags:
+    - records
+
+- name: Print IP collisions
+  debug:
+    msg:
+      - "WARNING: The following IP addresses have multiple records in DNS.  Check for IP collisions!"
+      - "Either re-run this playbook with '-vvv' or `grep -r -w {{ inventory_dir }}/{{ lab_name }} {{ inventory_dir }}/group_vars/nameserver.yml` for the IPs below."
+      - "{{ nameserver_collisions_grep.stdout_lines }}"
+  when: have_collisions is defined and have_collisions|bool
+  tags:
+    - records
+
+- name: grep duplicated IPs in ansible inventory
+  local_action:
+    module: command
+    cmd: "grep -r -w {{ item }} {{ inventory_dir }}/{{ lab_name }} {{ inventory_dir }}/group_vars/nameserver.yml"
+  become: false
+  connection: local
+  with_items: "{{ nameserver_collisions_grep.stdout_lines }}"
+  when: have_collisions is defined and have_collisions|bool
+  tags:
+    - records
index 948dfab2bd1bb934241fe9cec5ed36e88ada8f99..cadbc11162e323f08636fb446d4633205d3eefbf 100644 (file)
   when: (item.value.dynamic != true) or
         (item.value.dynamic == true and item.value.ddns_hostname_prefixes is defined)
 
+- name: grep temp zone files for IP collisions
+  shell: 'grep -E -o -h "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" {{ named_tempdir.stdout }}/* | sort | uniq -d'
+  register: nameserver_collisions_grep
+  when: (named_conf_slave is undefined) or
+        (named_conf_slave is defined and named_conf_slave == false)
+
 - name: Write reverse zone files to tempdir
   template:
     src: reverse.j2