summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMicah Anderson <micah@riseup.net>2013-06-28 11:28:13 -0400
committerMicah Anderson <micah@riseup.net>2013-07-01 12:11:39 -0400
commit9a522267068a1bcede55ba388d526ddc263d155f (patch)
treeeb1e643dffb67b196089fb5b9495b49600ea0fa0
parenta2b1fc25dc363a99284711f67a2577f90fda6b14 (diff)
restart stunnels if /etc/hosts is changed (#3031)
Due to the fact that /etc/hosts is modified in the early stage setup.pp run and the stunnel service is not deployed on an initial puppet run, we cannot simply override the Service['stunnel'] but instead need to trigger a restart through an exec calling the init script that first tests to see if it is present. Change-Id: I6bf5dfece9ecbdb8319747774185dec50d5a55f6
-rw-r--r--puppet/modules/site_config/manifests/hosts.pp11
1 files changed, 11 insertions, 0 deletions
diff --git a/puppet/modules/site_config/manifests/hosts.pp b/puppet/modules/site_config/manifests/hosts.pp
index 83a1040d..ccedf036 100644
--- a/puppet/modules/site_config/manifests/hosts.pp
+++ b/puppet/modules/site_config/manifests/hosts.pp
@@ -14,6 +14,17 @@ class site_config::hosts() {
refreshonly => true;
}
+ # we depend on reliable hostnames from /etc/hosts for the stunnel services
+ # so restart stunnel service when /etc/hosts is modified
+ # because this is done in an early stage, the stunnel module may not
+ # have been deployed and will not be available for overriding, so
+ # this is handled in an unorthodox manner
+ exec { '/etc/init.d/stunnel4 restart':
+ subscribe => File['/etc/hosts'],
+ refreshonly => true,
+ onlyif => 'test -f /etc/init.d/stunnel4';
+ }
+
file { '/etc/hosts':
content => template('site_config/hosts'),
mode => '0644',