add script to continuously check DNS settings
authorRalf Jung <post@ralfj.de>
Thu, 21 Jun 2018 08:02:08 +0000 (10:02 +0200)
committerRalf Jung <post@ralfj.de>
Thu, 21 Jun 2018 08:02:08 +0000 (10:02 +0200)
roles/unbound/tasks/main.yml
roles/unbound/templates/fix-dns [new file with mode: 0644]

index c53cecb2312a71025e1a2f8096ab93fed7f3cb91..988517f4acd6deeddda51c42011ec57a5714ddaa 100644 (file)
@@ -34,3 +34,8 @@
   copy:
     dest: /etc/resolv.conf
     content: "nameserver 127.0.0.2\n"
   copy:
     dest: /etc/resolv.conf
     content: "nameserver 127.0.0.2\n"
+# some providers need extra hacks to make our DNS persistent
+- name: install DNS-fix cronjob
+  template:
+    dest: /etc/cron.hourly/fix-dns
+    src: templates/fix-dns
diff --git a/roles/unbound/templates/fix-dns b/roles/unbound/templates/fix-dns
new file mode 100644 (file)
index 0000000..ca7f860
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/bash
+set -e
+
+# Fix for some providers messing with DNS settings
+if ! diff /etc/resolv.conf <(echo "nameserver 127.0.0.2") > /dev/null; then
+       echo "Someone messed up our DNS! Fixing it..."
+       echo "nameserver 127.0.0.2" > /etc/resolv.conf
+{% if 'email' in group_names %}
+       # Just to make sure postfix uses the new settings
+       systemctl restart postfix
+{% endif %}
+fi