diff options
author | Micah Anderson <micah@riseup.net> | 2012-08-09 16:03:01 -0400 |
---|---|---|
committer | Micah Anderson <micah@riseup.net> | 2012-08-09 16:03:01 -0400 |
commit | 65af9e370b43b8959356d116f17607125a1f7733 (patch) | |
tree | bd6edeb501f52d6d64a8b4255844b8e3b4bd1807 | |
parent | bc1a9682ada5040c163ba4508e13b757219d1698 (diff) |
Because passenger mode doesn't have its own daemon, it was a hack before to have the service definition for 'puppetmaster' be actually looking in the process list for 'apache2'. This sort of worked, but not if you need to notify the service for a restart.
It also didn't actually work, because the hasstatus parameter was set to true, which meant that on every run, puppet did a /etc/init.d/puppetmaster status and found that it was not running and then tried to start it by doing /etc/init.d/puppetmaster start. That doesn't work because its turned off in /etc/default/puppetmaster when puppetmaster_mode='passenger'.
So... this commit removes that hacky service definition and instead just requires the apache::base class, providing the apache service monitoring that is needed when you are running puppetmaster_mode='passenger'. It also has to pull up the Service[puppet] override which was adding the puppetmaster service, which makes no sense because there is no service.
Finally, in order to notify it for changes, we need to use a selector to determine how to reload things based on puppetmaster_mode.
-rw-r--r-- | manifests/puppetmaster/debian.pp | 5 | ||||
-rw-r--r-- | manifests/puppetmaster/linux.pp | 17 |
2 files changed, 10 insertions, 12 deletions
diff --git a/manifests/puppetmaster/debian.pp b/manifests/puppetmaster/debian.pp index 8cee0ea..853a0e6 100644 --- a/manifests/puppetmaster/debian.pp +++ b/manifests/puppetmaster/debian.pp @@ -13,7 +13,10 @@ class puppet::puppetmaster::debian inherits puppet::puppetmaster::package { "puppet:///modules/site-puppet/master/debian/${domain}/puppetmaster", "puppet:///modules/site-puppet/master/debian/puppetmaster", "puppet:///modules/puppet/master/debian/puppetmaster" ], - notify => Service[puppetmaster], + notify => $puppetmaster_mode ? { + 'passenger' => Exec['notify_passenger_puppetmaster'], + default => Service[puppetmaster], + }, owner => root, group => 0, mode => 0644; } } diff --git a/manifests/puppetmaster/linux.pp b/manifests/puppetmaster/linux.pp index 26f67fe..7c2e428 100644 --- a/manifests/puppetmaster/linux.pp +++ b/manifests/puppetmaster/linux.pp @@ -1,28 +1,23 @@ class puppet::puppetmaster::linux inherits puppet::linux { if $puppetmaster_mode == 'passenger' { + + require('apache::base') + exec { 'notify_passenger_puppetmaster': refreshonly => true, #command => 'touch /etc/puppet/rack/tmp/restart.txt && sleep 1 && rm /etc/puppet/rack/tmp/restart.txt', command => '/etc/init.d/apache2 reload', } - service { 'puppetmaster': - ensure => running, - pattern => 'apache2', - hasstatus => true, - hasrestart => true, - require => [ Package[puppet] ], - } - } else { service { 'puppetmaster': ensure => running, enable => true, require => [ Package[puppet] ], } - } - Service[puppet]{ - require +> Service[puppetmaster], + Service[puppet]{ + require +> Service[puppetmaster], + } } } |