diff options
Diffstat (limited to 'manifests')
-rw-r--r-- | manifests/master/mongrel.pp | 44 | ||||
-rw-r--r-- | manifests/master/passenger.pp | 15 | ||||
-rw-r--r-- | manifests/puppetmasterd.pp | 60 |
3 files changed, 82 insertions, 37 deletions
diff --git a/manifests/master/mongrel.pp b/manifests/master/mongrel.pp new file mode 100644 index 0000000..eb96247 --- /dev/null +++ b/manifests/master/mongrel.pp @@ -0,0 +1,44 @@ +# handles puppetmasterd service +class puppet::master::mongrel { + + case $puppetmaster_puppetmasters { + '': { $puppetmaster_puppetmasters = '4' } + } + + case $puppetmaster_port { + '': { $puppetmaster_port = '18140' } + } + + # Include nginx + include nginx::puppetmaster + + case defined(Package["mongrel"]) { + false: { package { "mongrel": ensure => installed, } } + } + + package { "puppetmaster": + ensure => installed, + } + + service { "puppetmaster": + enable => true, + ensure => running, + hasrestart => true, + pattern => 'puppet master', + require => [ Package['puppetmaster'], Package['mongrel'], Service['nginx'] ], + } + +} + +class puppet::master::mongrel::disabled { + include nginx::puppetmaster::disabled + + Service['puppetmaster'] { + ensure => stopped, + } + + Package['puppetmaster'] { + enable => false, + ensure => absent, + } +} diff --git a/manifests/master/passenger.pp b/manifests/master/passenger.pp new file mode 100644 index 0000000..38d3c97 --- /dev/null +++ b/manifests/master/passenger.pp @@ -0,0 +1,15 @@ +# handles puppetmasterd service +class puppet::master::passenger { + # make sure we're not running mongrel + include puppet::master::mongrel::disabled + + # then include puppet class + include puppetd + + # include passenger + include apache::passenger + + package { 'puppetmaster-passenger': + ensure => installed, + } +} diff --git a/manifests/puppetmasterd.pp b/manifests/puppetmasterd.pp index f542f1f..37a95ff 100644 --- a/manifests/puppetmasterd.pp +++ b/manifests/puppetmasterd.pp @@ -3,18 +3,14 @@ class puppetmasterd { # Configuration case $puppetmaster_servertype { - '': { + 'mongrel': { $puppetmaster_servertype = 'mongrel' $puppetmaster_daemon_opts = '--ssl_client_header=HTTP_X_SSL_SUBJECT' } - } - - case $puppetmaster_puppetmasters { - '': { $puppetmaster_puppetmasters = '4' } - } - - case $puppetmaster_port { - '': { $puppetmaster_port = '18140' } + '' { + $puppetmaster_servertype = 'passenger' + $puppetmaster_daemon_opts = '' + } } # Use this option if you want puppet to manage the certificates for all @@ -39,11 +35,28 @@ class puppetmasterd { # needed packages package { - "puppetmaster": ensure => installed; "sqlite3": ensure => installed; "libmysql-ruby": ensure => installed; } + case $puppetmaster_servertype { + 'mongrel': { + include puppet::master::mongrel + } + 'passenger': { + include puppet::master::passenger + } + default: { + service { "puppetmaster": + enable => true, + ensure => running, + hasrestart => true, + pattern => 'puppet master', + require => Package['puppetmaster'], + } + } + } + file { "/etc/default/puppetmaster": ensure => present, owner => root, @@ -75,33 +88,6 @@ class puppetmasterd { require => User["puppet"], } - case $puppetmaster_servertype { - 'mongrel': { - include nginx::puppetmaster - - case defined(Package["mongrel"]) { - false: { package { "mongrel": ensure => installed, } } - } - - service { "puppetmaster": - enable => true, - ensure => running, - hasrestart => true, - pattern => 'puppet master', - require => [ Package['puppetmaster'], Package['mongrel'], Service['nginx'] ], - } - } - default: { - service { "puppetmaster": - enable => true, - ensure => running, - hasrestart => true, - pattern => 'puppet master', - require => Package['puppetmaster'], - } - } - } - # cron rule to update puppet config repository every 5 minutes cron { "puppet-update": command => "/usr/local/sbin/update-puppet-conf.sh > /dev/null 2>&1", |