132 lines
3.3 KiB
Puppet
132 lines
3.3 KiB
Puppet
@@puppet::puppetmaster::privatedir { $fqdn: l_fqdn => generate('/usr/bin/env', 'perl', '-e', '$_=shift;tr/[A-Z]/[a-z]/;print $_',
|
|
"$fqdn") }
|
|
|
|
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']) {
|
|
class { 'puppet::puppetlabs_apt': }
|
|
require 'puppet::puppetlabs_apt'
|
|
}
|
|
|
|
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}",
|
|
}
|
|
|
|
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"] ],
|
|
}
|
|
|
|
} |