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, } $pkg_ens = $ensure ? { 'present' => $::kernel ? { 'Linux' => $puppet_linuxversion_real, default => $ensure, }, default => $ensure, } package { $puppetpkgs: ensure => $pkg_ens, 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], } } '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: ensure => $ensure, content => template('puppet/puppet.conf.erb'), mode => '0644', owner => $puppet_user, # require => [ Package["puppet"] ], } }