Andrew Bogott has submitted this change and it was merged.

Change subject: Disable automatic updating of resolv.conf
......................................................................


Disable automatic updating of resolv.conf

Tested on Precise, Trusty, Jessie.

Bug: T93691
Change-Id: I26b3eb07c98cb09cbe75b80a8c22736a35ac4232
---
A modules/base/files/resolv/nodnsupdate
A modules/base/files/resolv/resolvconf.dummy
M modules/base/manifests/resolving.pp
3 files changed, 47 insertions(+), 7 deletions(-)

Approvals:
  Andrew Bogott: Looks good to me, approved
  coren: Checked
  jenkins-bot: Verified



diff --git a/modules/base/files/resolv/nodnsupdate 
b/modules/base/files/resolv/nodnsupdate
new file mode 100644
index 0000000..80ed774
--- /dev/null
+++ b/modules/base/files/resolv/nodnsupdate
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+make_resolv_conf(){
+       :
+}
diff --git a/modules/base/files/resolv/resolvconf.dummy 
b/modules/base/files/resolv/resolvconf.dummy
new file mode 100644
index 0000000..9d4a6b4
--- /dev/null
+++ b/modules/base/files/resolv/resolvconf.dummy
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+# This is a dummy resolvconf, put in place to disable default
+#  resolvconf behavior.  It's installed by puppet along with
+#  the desired resolv.conf.
+echo "resolvconf disabled."
+exit 0
diff --git a/modules/base/manifests/resolving.pp 
b/modules/base/manifests/resolving.pp
index 5592950..01ab3eb 100644
--- a/modules/base/manifests/resolving.pp
+++ b/modules/base/manifests/resolving.pp
@@ -5,13 +5,41 @@
         error("Variable ${::nameservers} is not defined!")
     }
     else {
-        file { '/etc/resolv.conf':
-            owner   => 'root',
-            group   => 'root',
-            mode    => '0444',
-            content => $::realm? {
-                'labs'  => template('base/resolv.conf.labs.erb'),
-                default => template('base/resolv.conf.erb'),
+        if $::realm == 'labs' {
+            # Thanks to dhcp, resolvconf is constantly messing with our 
resolv.conf.  Disable it.
+            file { '/sbin/resolvconf':
+                owner   => 'root',
+                group   => 'root',
+                mode    => '0555',
+                source  => 'puppet:///modules/base/resolv/resolvconf.dummy',
+            }
+
+            file { '/etc/dhcp/dhclient-enter-hooks.d':
+                ensure => 'directory',
+            }
+
+            # also stop dhclient from updating resolv.conf.
+            file { '/etc/dhcp/dhclient-enter-hooks.d/nodnsupdate':
+                owner   => 'root',
+                group   => 'root',
+                mode    => '0555',
+                source  => 'puppet:///modules/base/resolv/nodnsupdate',
+                require => File['/etc/dhcp/dhclient-enter-hooks.d'],
+            }
+
+            # Now, finally, we can just puppetize the damn file
+            file { '/etc/resolv.conf':
+                owner   => 'root',
+                group   => 'root',
+                mode    => '0444',
+                content => template('base/resolv.conf.labs.erb'),
+            }
+        } else {
+            file { '/etc/resolv.conf':
+                owner   => 'root',
+                group   => 'root',
+                mode    => '0444',
+                content => template('base/resolv.conf.erb'),
             }
         }
     }

-- 
To view, visit https://gerrit.wikimedia.org/r/200999
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I26b3eb07c98cb09cbe75b80a8c22736a35ac4232
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Andrew Bogott <abog...@wikimedia.org>
Gerrit-Reviewer: Andrew Bogott <abog...@wikimedia.org>
Gerrit-Reviewer: Tim Landscheidt <t...@tim-landscheidt.de>
Gerrit-Reviewer: coren <mpellet...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to