134 lines
3.3 KiB
Puppet
134 lines
3.3 KiB
Puppet
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,
|
|
}
|
|
|
|
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"] ],
|
|
}
|
|
|
|
}
|