import "defines/*.pp" 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" require 'puppet::common' if !defined(Class['puppet::puppetlabs_apt']) { require 'puppet::puppetlabs_apt' } # @@puppet::puppetmaster::privatedir { $fqdn: l_fqdn => generate('/usr/bin/env', 'perl', '-e', '$_=shift;tr/[A-Z]/[a-z]/;print $_', # "$fqdn") } case $kernel { "Linux" : { $puppetpkgs = ["puppet", "puppet-common"] Package { provider => "apt" } } default : { $puppetpkgs = "puppet" } } $puppet_linuxversion_real = $::PUPPET_VERSION_LINUX ? { "" => "latest", default => $::PUPPET_VERSION_LINUX, } package { $puppetpkgs: ensure => $ensure ? { "present" => $kernel ? { "Linux" => $puppet_linuxversion_real, default => $ensure, } }, notify => Service["${puppet_service}"], } 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; "/var/log/puppet": mode => '0750', owner => 'puppet', group => 'puppet'; } 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}"], # } if defined(Class['monit']) { 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"] ], } }