From 65af9e370b43b8959356d116f17607125a1f7733 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Thu, 9 Aug 2012 16:03:01 -0400 Subject: 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. --- manifests/puppetmaster/debian.pp | 5 ++++- manifests/puppetmaster/linux.pp | 17 ++++++----------- 2 files changed, 10 insertions(+), 12 deletions(-) (limited to 'manifests') 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], + } } } -- cgit v1.2.3