Project

General

Profile

Download (1.84 KB) Statistics
| Branch: | Tag: | Revision:
# == Class: puppet::server::service
#
# Set up the puppet server as a service
#
# === Parameters:
#
# $app_root:: Rack application top-level directory
#
# $httpd_service:: Apache/httpd service name, used for ordering
#
# $puppetmaster:: Whether to start/stop the (Ruby) puppetmaster service
#
# $puppetserver:: Whether to start/stop the (JVM) puppetserver service
#
# $rack:: Whether the Puppet server is running under Apache with Rack and Passenger
# Does not manage the Apache service, only restarts and ordering.
#
class puppet::server::service(
Optional[Stdlib::Absolutepath] $app_root = undef,
String $httpd_service = 'httpd',
Optional[Boolean] $puppetmaster = undef,
Optional[Boolean] $puppetserver = undef,
Optional[Boolean] $rack = undef,
) {
if $puppetmaster and $puppetserver {
fail('Both puppetmaster and puppetserver cannot be enabled simultaneously')
}

if $::osfamily == 'Debian' {
$puppetmaster_service = 'puppet-master'
} else {
$puppetmaster_service = 'puppetmaster'
}

if $puppetmaster != undef {
$pm_ensure = $puppetmaster ? {
true => 'running',
false => 'stopped',
}
service { $puppetmaster_service:
ensure => $pm_ensure,
enable => $puppetmaster,
}

if $rack and !$puppetmaster {
Service[$puppetmaster_service] -> Service[$httpd_service]
}
}

if $puppetserver != undef {
$ps_ensure = $puppetserver ? {
true => 'running',
false => 'stopped',
}
service { 'puppetserver':
ensure => $ps_ensure,
enable => $puppetserver,
}

if $rack and !$puppetserver {
Service['puppetserver'] -> Service[$httpd_service]
}
}

if $rack {
exec {'restart_puppetmaster':
command => "/bin/touch ${app_root}/tmp/restart.txt",
refreshonly => true,
cwd => $app_root,
}
}
}
(8-8/8)