diff --git a/manifests/init.pp b/manifests/init.pp index bcf5dc6..b8e4479 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -1,234 +1,201 @@ # $Id: init.pp 4425 2011-06-17 11:42:17Z uwaechte $ -class puppet ($ensure = "present", - $norunifloggedin = false, - $daemonize = true, - $run_hour = "*/1", - $run_minute = "10", - $run_if_ipmatch = "") { - $puppet_service = $kernel ? { - "Darwin" => "org.macports.puppet", - "FreeBSD" => "puppetd", - default => "puppet" - } - $factpath = "/var/lib/puppet/lib/facter" - case $kernel { - "Linux" : { - $puppetpkgs = ["puppet", "puppet-common"] - Package { - provider => "apt" - } - #Package["puppet-common"]{ before => Package["puppet"] } +class puppet ( + $ensure = "present", + $norunifloggedin = false, + $daemonize = true, + $run_hour = "*/1", + $run_minute = "10", + $run_if_ipmatch = "") { + $puppet_service = $kernel ? { + "Darwin" => "org.macports.puppet", + "FreeBSD" => "puppetd", + default => "puppet" + } + $factpath = "/var/lib/puppet/lib/facter" - } - default : { - $puppetpkgs = "puppet" - } + case $kernel { + "Linux" : { + $puppetpkgs = ["puppet", "puppet-common"] + + Package { + provider => "apt" } } - $puppet_linuxversion_real = $PUPPET_VERSION_LINUX ? { - "" => "latest", - default => $PUPPET_VERSION_LINUX, + default : { + $puppetpkgs = "puppet" } - # case $kernel { - # "Linux": { - # exec{"apt-get install -y puppet=$PUPPET_VERSION_LINUX puppet-common=${PUPPET_VERSION_LINUX}": - # onlyif => "apt-show-versions -a puppet |tail -1 |grep -q upgradeable", - # } - # } - # default: { - package { - $puppetpkgs : - ensure => $ensure ? { - "present" => $kernel ? { - "Linux" => $puppet_linuxversion_real, - default => $ensure, - } - }, - notify => Service["${puppet_service}"], - } - # } - # } - package { - ["facter"] : - ensure => "${ensure}", - } - service { - "${puppet_service}" : - hasstatus => true, - enable => "${daemonize}", - ensure => "${daemonize}", - } - $cron_real = $daemonize ? { - false => "present", - true => "absent", + } + $puppet_linuxversion_real = $PUPPET_VERSION_LINUX ? { + "" => "latest", + default => $PUPPET_VERSION_LINUX, + } + + package { $puppetpkgs: + ensure => $ensure ? { + "present" => $kernel ? { + "Linux" => $puppet_linuxversion_real, default => $ensure, - } - notice("${fqdn} PUPPET-CRON: cron_real: ${cron_real}, daemonize: ${daemonize}, running: ${service_running}") - cron { - puppetrun : - command => "/usr/local/sbin/puppetd_run.sh", - user => root, - minute => $run_minute, - hour => $run_hour, - ensure => "${cron_real}", - } - $maxsleep = 6400 - file { - "/usr/local/sbin/puppetd_run.sh" : - content => template("puppet/puppetd_run.sh.erb"), - mode => 0700, - alias => "puppetd_run.sh", - ensure => "${ensure}", - } - case $kernel { - "Darwin" : { - file { - "/Library/LaunchDaemons/org.macports.puppet.plist" : - source => - "puppet:///modules/puppet/org.macports.puppet.plist", - before => Service["${puppet_service}"], - } - file { - "/opt/local/lib/ruby/site_ruby/1.8/puppet/provider/package/appdmg.rb" : - ensure => "absent", - } - } - "Linux" : { - replace { - "enable_puppet" : - file => "/etc/default/puppet", - pattern => "START=no", - replacement => "START=yes", - before => Service["${puppet_service}"], - } - monit::process { - "puppet" : - start => "/etc/init.d/puppet start", - stop => "/etc/init.d/puppet stop", - pidfile => "/var/run/puppet/agent.pid", - additional => - "if totalmem > 400 Mb for 10 cycles then RESTART", - ensure => $daemonize ? { - "true" => "present", - default => "absent", - }, - } - } - } - $puppet_user = $operatingsystem ? { - "Darwin" => $adm, - default => "puppet", - } - $puppet_group = $operatingsystem ? { - "Darwin" => "wheel", - default => "puppet", - } - #"FreeBSD" => "/usr/local/etc/puppet/puppet.conf", - $puppetconf = $operatingsystem ? { - default => "/etc/puppet/puppet.conf", - } - file { - $puppetconf : - content => template("puppet/puppet.conf.erb"), - mode => 0644, - owner => $puppet_user, - ensure => "${ensure}", - # require => [ Package["puppet"] ], - } + } }, + notify => Service["${puppet_service}"], + } - #add facter variable to custom facts. - file { - "/etc/profile.d/puppet.sh" : - content => "export FACTERLIB=\"${factpath}\"\n", - ensure => $ensure, + package { ["facter"]: ensure => "${ensure}", } + + service { "${puppet_service}": + hasstatus => true, + enable => "${daemonize}", + ensure => "${daemonize}", + } + $cron_real = $daemonize ? { + false => "present", + true => "absent", + default => $ensure, + } + notice("${fqdn} PUPPET-CRON: cron_real: ${cron_real}, daemonize: ${daemonize}, running: ${service_running}") + + cron { puppetrun: + command => "/usr/local/sbin/puppetd_run.sh", + user => root, + minute => $run_minute, + hour => $run_hour, + ensure => "${cron_real}", + } + $maxsleep = 6400 + + file { "/usr/local/sbin/puppetd_run.sh": + content => template("puppet/puppetd_run.sh.erb"), + mode => 0700, + alias => "puppetd_run.sh", + ensure => "${ensure}", + } + + case $kernel { + "Darwin" : { + file { "/Library/LaunchDaemons/org.macports.puppet.plist": + source => "puppet:///modules/puppet/org.macports.puppet.plist", + before => Service["${puppet_service}"], + } + + file { "/opt/local/lib/ruby/site_ruby/1.8/puppet/provider/package/appdmg.rb": ensure => "absent", } } + "Linux" : { + replace { "enable_puppet": + file => "/etc/default/puppet", + pattern => "START=no", + replacement => "START=yes", + before => Service["${puppet_service}"], + } + + monit::process { "puppet": + start => "/etc/init.d/puppet start", + stop => "/etc/init.d/puppet stop", + pidfile => "/var/run/puppet/agent.pid", + additional => "if totalmem > 400 Mb for 10 cycles then RESTART", + ensure => $daemonize ? { + "true" => "present", + default => "absent", + }, + } + } + } + $puppet_user = $operatingsystem ? { + "Darwin" => $adm, + default => "puppet", + } + $puppet_group = $operatingsystem ? { + "Darwin" => "wheel", + default => "puppet", + } + # "FreeBSD" => "/usr/local/etc/puppet/puppet.conf", + $puppetconf = $operatingsystem ? { + default => "/etc/puppet/puppet.conf", + } + + file { $puppetconf: + content => template("puppet/puppet.conf.erb"), + mode => 0644, + owner => $puppet_user, + ensure => "${ensure}", + # require => [ Package["puppet"] ], + } + + # add facter variable to custom facts. + file { "/etc/profile.d/puppet.sh": + content => "export FACTERLIB=\"${factpath}\"\n", + ensure => $ensure, + } } -@@puppet::puppetmaster::privatedir { - $fqdn : - l_fqdn => generate('/usr/bin/env', 'perl', '-e', - '$_=shift;tr/[A-Z]/[a-z]/;print $_', "$fqdn") -} + +@@puppet::puppetmaster::privatedir { $fqdn: l_fqdn => generate('/usr/bin/env', 'perl', '-e', '$_=shift;tr/[A-Z]/[a-z]/;print $_', + "$fqdn") } + class puppet::puppet-dashboard ($ensure = "present") { - package { - ["libjson-ruby", "puppet-dashboard"] : - ensure => $ensure, - require => Apt::Repository["puppet-dashboard"], - } - apt::repository { - "puppet-dashboard" : - key => "8347A27F", - repository => - "deb http://apt.puppetlabs.com/ubuntu lucid main\ndeb-src http://apt.puppetlabs.com/ubuntu lucid main\n", - ensure => $ensure, - } - cron { - "purge-reports" : - command => - "cd /usr/share/puppet-dashboard && rake RAILS_ENV=production reports:prune upto=14 unit=day", - user => "www-data", - hour => "23", - minute => "2", - monthday => "*/14", - ensure => $ensure, - } - cron { - "purge-optimizedb" : - command => - "cd /usr/share/puppet-dashboard && rake RAILS_ENV=production db:raw:optimize", - user => "www-data", - hour => "23", - minute => "20", - monthday => "*/10", - ensure => $ensure, - } + package { ["libjson-ruby", "puppet-dashboard"]: + ensure => $ensure, + require => Apt::Repository["puppet-dashboard"], + } + + apt::repository { "puppet-dashboard": + key => "8347A27F", + repository => "deb http://apt.puppetlabs.com ${lsbdistcodename} main\n", + ensure => $ensure, + } + + cron { "purge-reports": + command => "cd /usr/share/puppet-dashboard && rake RAILS_ENV=production reports:prune upto=14 unit=day", + user => "www-data", + hour => "23", + minute => "2", + monthday => "*/14", + ensure => $ensure, + } + + cron { "purge-optimizedb": + command => "cd /usr/share/puppet-dashboard && rake RAILS_ENV=production db:raw:optimize", + user => "www-data", + hour => "23", + minute => "20", + monthday => "*/10", + ensure => $ensure, + } } -class puppet::puppetmaster ($ensure = "present", - $puppetqd = true) { - if $puppetqd { - class { - "activemq" : - ensure => $ensure - } - package { - "libnet-arp-perl" : - ensure => $ensure - } - service { - "stompserver" : - ensure => false, - enable => false, - before => Class["activemq"], - } - service { - "puppetqd" : - ensure => running, - pattern => "puppet queue queue", - enable => true, - } - } - Ganglia::Gmetric::Cron { - source => "puppet/ganglia", - ensure => "${ensure}", - } - ganglia::gmetric::cron { - "puppetmaster.rb" : - runwhen => "5", - } - ganglia::gmetric::cron { - "puppetmaster_compiletime.rb" : - runwhen => "60", + +class puppet::puppetmaster ($ensure = "present", $puppetqd = false) { + if $puppetqd { + class { "activemq": ensure => $ensure } + + package { "libnet-arp-perl": ensure => $ensure } + + service { "stompserver": + ensure => false, + enable => false, + before => Class["activemq"], } - ### remove disk reports from time to time - tidy { - "${puppet_vardir}/reports" : - age => "1d", - recurse => true, - backup => false, + service { "puppetqd": + ensure => running, + pattern => "puppet queue queue", + enable => true, } + } - # create [private] directories - # file { $puppet_privdir: ensure => directory } - # Puppet::Puppetmaster::Privatedir <<| |>> + Ganglia::Gmetric::Cron { + source => "puppet/ganglia", + ensure => "${ensure}", + } + ganglia::gmetric::cron { "puppetmaster.rb": runwhen => "5", } + + ganglia::gmetric::cron { "puppetmaster_compiletime.rb": runwhen => "60", } + + # ## remove disk reports from time to time + tidy { "${puppet_vardir}/reports": + age => "1d", + recurse => true, + backup => false, + } + + # create [private] directories + # file { $puppet_privdir: ensure => directory } + # Puppet::Puppetmaster::Privatedir <<| |>> } import "defines/*.pp" diff --git a/templates/puppetd_run.sh.erb b/templates/puppetd_run.sh.erb index d72622f..c58a6dd 100755 --- a/templates/puppetd_run.sh.erb +++ b/templates/puppetd_run.sh.erb @@ -12,8 +12,9 @@ export FACTERLIB="<%= scope.lookupvar("factpath") %>" PATH="/opt/local/bin:/opt/local/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" -PUPPET=$(which puppetd) +PUPPET=$(which puppet) [[ -e ${PUPPET} ]] || exit 1 +PUPPET="${PUPPET} agent" <% if run_if_ipmatch != "" -%> ISUNIIP=$(ifconfig |grep -c -e "<%= run_if_ipmatch %>") <% else -%>