summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMicah Anderson <micah@riseup.net>2012-08-09 16:03:01 -0400
committerMicah Anderson <micah@riseup.net>2012-08-09 16:03:01 -0400
commit65af9e370b43b8959356d116f17607125a1f7733 (patch)
treebd6edeb501f52d6d64a8b4255844b8e3b4bd1807
parentbc1a9682ada5040c163ba4508e13b757219d1698 (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.pp5
-rw-r--r--manifests/puppetmaster/linux.pp17
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],
+ }
}
}