diff options
Diffstat (limited to 'manifests/puppetmaster')
-rw-r--r-- | manifests/puppetmaster/base.pp | 40 | ||||
-rw-r--r-- | manifests/puppetmaster/checklastrun.pp | 9 | ||||
-rw-r--r-- | manifests/puppetmaster/linux.pp | 27 | ||||
-rw-r--r-- | manifests/puppetmaster/package.pp | 9 | ||||
-rw-r--r-- | manifests/puppetmaster/passenger.pp | 45 | ||||
-rw-r--r-- | manifests/puppetmaster/storeconfigs.pp | 8 |
6 files changed, 112 insertions, 26 deletions
diff --git a/manifests/puppetmaster/base.pp b/manifests/puppetmaster/base.pp index 0b208b0..4a1cb6f 100644 --- a/manifests/puppetmaster/base.pp +++ b/manifests/puppetmaster/base.pp @@ -1,9 +1,18 @@ class puppet::puppetmaster::base inherits puppet::base { + if defined (puppet::cron) { + File[puppet_config]{ + source => [ "puppet://$server/modules/site-puppet/master/puppet.conf", + "puppet://$server/modules/puppet/master/puppet.conf" ], + notify => Service[puppetmaster], + } + } + else { + File[puppet_config]{ + source => [ "puppet://$server/modules/site-puppet/master/puppet.conf", + "puppet://$server/modules/puppet/master/puppet.conf" ], + notify => [Service[puppet],Service[puppetmaster] ], + } - File[puppet_config]{ - source => [ "puppet://$server/modules/site-puppet/master/puppet.conf", - "puppet://$server/modules/puppet/master/puppet.conf" ], - notify => [Service[puppet],Service[puppetmaster] ], } $real_puppet_fileserverconfig = $puppet_fileserverconfig ? { @@ -12,22 +21,25 @@ class puppet::puppetmaster::base inherits puppet::base { } file { "$real_puppet_fileserverconfig": - source => [ "puppet://$server/modules/site-puppet/master/${fqdn}/fileserver.conf", - "puppet://$server/modules/site-puppet/master/fileserver.conf", - "puppet://$server/modules/puppet/master/fileserver.conf" ], - notify => [Service[puppet],Service[puppetmaster] ], + source => [ "puppet://$server/modules/site-puppet/master/${fqdn}/fileserver.conf", + "puppet://$server/modules/site-puppet/master/fileserver.conf", + "puppet://$server/modules/puppet/master/fileserver.conf" ], + notify => [Service[puppet],Service[puppetmaster] ], owner => root, group => puppet, mode => 640; - } + } if $puppetmaster_storeconfigs { include puppet::puppetmaster::storeconfigs } - # restart the master from time to time to avoid memory problems - file{'/etc/cron.d/puppetmaster.cron': - source => [ "puppet://$server/modules/puppet/cron.d/puppetmaster.${operatingsystem}", - "puppet://$server/modules/puppet/cron.d/puppetmaster" ], - owner => root, group => 0, mode => 0644; + + if ! defined (puppet::puppetmaster::passenger) { + # restart the master from time to time to avoid memory problems + file{'/etc/cron.d/puppetmaster.cron': + source => [ "puppet://$server/modules/puppet/cron.d/puppetmaster.${operatingsystem}", + "puppet://$server/modules/puppet/cron.d/puppetmaster" ], + owner => root, group => 0, mode => 0644; + } } file{'/etc/cron.daily/puppet_reports_cleanup.sh': diff --git a/manifests/puppetmaster/checklastrun.pp b/manifests/puppetmaster/checklastrun.pp index 12f1042..fdcc096 100644 --- a/manifests/puppetmaster/checklastrun.pp +++ b/manifests/puppetmaster/checklastrun.pp @@ -1,12 +1,13 @@ class puppet::puppetmaster::checklastrun { - file{'/opt/bin/puppetlast': + file{"/usr/local/bin/puppetlast": source => [ "puppet://$server/modules/site-puppet/master/puppetlast", "puppet://$server/modules/puppet/master/puppetlast"], owner => root, group => 0, mode => 0700; } file{'/etc/cron.d/puppetlast.cron': - content => "40 10,22 * * * root /opt/bin/puppetlast\n", - require => File['/opt/bin/puppetlast'], - owner => root, group => 0, mode => 0644; + content => "40 10,22 * * * root /usr/local/bin/puppetlast\n", + require => File["/usr/local/bin/puppetlast"], + owner => root, group => 0, mode => 0644, + notify => service["crond"]; } } diff --git a/manifests/puppetmaster/linux.pp b/manifests/puppetmaster/linux.pp index 43cd841..2a71dd4 100644 --- a/manifests/puppetmaster/linux.pp +++ b/manifests/puppetmaster/linux.pp @@ -1,13 +1,28 @@ # manifests/puppetmaster/linux.pp class puppet::puppetmaster::linux inherits puppet::linux { - - service{'puppetmaster': - ensure => running, - enable => true, - require => [ Package[puppet] ], + + if defined (puppet::puppetmaster::passenger) { + service{'puppetmaster': + ensure => running, + #name => apache2, + #enable => true, + pattern => 'apache2', + hasstatus => true, + start => '/etc/init.d/apache2 start', + stop => '/etc/init.d/apache2 start', + restart => '/etc/init.d/apache2 restart', + status => 'pgrep apache2', + require => [ Package[puppet] ], + } + } + else { + service{'puppetmaster': + ensure => running, + enable => true, + require => [ Package[puppet] ], + } } - Service[puppet]{ require +> Service[puppetmaster], } diff --git a/manifests/puppetmaster/package.pp b/manifests/puppetmaster/package.pp index d7c477d..c91dbe8 100644 --- a/manifests/puppetmaster/package.pp +++ b/manifests/puppetmaster/package.pp @@ -1,9 +1,14 @@ # manifests/puppetmaster/package.pp class puppet::puppetmaster::package inherits puppet::puppetmaster::linux { - package { puppet-server: ensure => present } + case $operatingsystem { + debian: { $puppetmaster_package="puppetmaster" } + default: { $puppetmaster_package="puppet-server" } + } + + package { $puppetmaster_package: ensure => present } Service[puppetmaster]{ - require +> Package[puppet-server], + require +> Package[$puppetmaster_package], } } diff --git a/manifests/puppetmaster/passenger.pp b/manifests/puppetmaster/passenger.pp new file mode 100644 index 0000000..06e2a2b --- /dev/null +++ b/manifests/puppetmaster/passenger.pp @@ -0,0 +1,45 @@ +# class to use passenger for serving puppetmaster + +class puppet::puppetmaster::passenger { + + case $operatingsystem { + debian: { include puppet::puppetmaster::passenger::debian } + defaults: { notice ( "class puppet::puppetmaster::passenger::base needs to be configured for using passenger with non-debian OS !" ) + include puppet::puppetmaster::passenger::base } + } +} + +class puppet::puppetmaster::passenger::debian inherits puppet::puppetmaster::passenger::base { + # according to http://github.com/reductivelabs/puppet/tree/master/ext/rack rack needs + # to be version >= 1.0.0 . lenny-backports provide it + package { "librack-ruby": ensure => "1.0.0-2~bpo50+1" } + package { "librack-ruby1.8": ensure => "1.0.0-2~bpo50+1" } + + apache::config::global{ 'puppet-apache2-passenger.conf': } + apache::debian::module { 'ssl': ensure => present } + apache::debian::module { 'passenger': ensure => present } + apache::debian::module { 'headers': ensure => present } +} + +class puppet::puppetmaster::passenger::base { + + include apache + include passenger::apache + + + # http://github.com/reductivelabs/puppet/tree/master/ext/rack + file { ["/etc/puppet/rack", "/etc/puppet/rack/public"]: + ensure => directory, + mode => 0755, + owner => root, + group => root, + } + file { "/etc/puppet/rack/config.ru": + ensure => present, + source => "puppet:///modules/puppet/master/config.ru", + mode => 0644, + owner => puppet, + group => root, + } +} + diff --git a/manifests/puppetmaster/storeconfigs.pp b/manifests/puppetmaster/storeconfigs.pp index 32aaa7f..1b6d759 100644 --- a/manifests/puppetmaster/storeconfigs.pp +++ b/manifests/puppetmaster/storeconfigs.pp @@ -2,4 +2,12 @@ # so storeconfigs works. class puppet::puppetmaster::storeconfigs { include rails + include mysql::server + + case $operatingsystem { + debian: { package { libmysql-ruby: ensure => present } } + + } + + } |