This commit is contained in:
Udo Waechter
2013-05-28 17:25:10 +02:00
parent eb58ca1320
commit 6ca8255ef8
4 changed files with 111 additions and 91 deletions

View File

@@ -1,10 +1,10 @@
class puppet::common ($ensure = 'present') { class puppet::common ($ensure = 'present') {
package { 'facter': $pkg_ens = $ensure ? {
ensure => $ensure ? { 'present' => 'latest',
'present' => 'latest', default => $ensure,
default => $ensure,
}
} }
package { 'facter': ensure => $pkg_ens }
$ens_dir = $ensure ? { $ens_dir = $ensure ? {
'present' => 'directory', 'present' => 'directory',
default => $ensure, default => $ensure,
@@ -18,16 +18,15 @@ class puppet::common ($ensure = 'present') {
'/etc/facter', '/etc/facter',
$facts_d]: $facts_d]:
ensure => $ens_dir, ensure => $ens_dir,
mode => 0755, mode => '0755',
owner => root, owner => 'root',
group => root; group => 'root';
"${::puppet_vardir}/exported": "${::puppet_vardir}/exported":
ensure => $ens_dir; ensure => $ens_dir;
} }
# add facter variable to custom facts. # add facter variable to custom facts.
file { '/etc/profile.d/puppet.sh': file { '/etc/profile.d/puppet.sh': content => "export FACTERLIB=\"${::factpath}\"\n",
content => "export FACTERLIB=\"${factpath}\"\n",
} }
} }

View File

@@ -0,0 +1,21 @@
##########################################################################
# # define puppet::puppetmaster::privatedir
# # $l_fqdn : hostname - lower case letters only
# # $title : hostname - as given in hosts client-cert
##
# # $puppet_privdir (declared in site.pp) must already exist!
define puppet::defines::privatedir ($l_fqdn) {
file { "${::puppet_privdir}/${l_fqdn}":
ensure => directory,
owner => puppet
} # file
# # create link if cert-hostname and DNS-provided fqdn differ
if $title != $l_fqdn {
file { "${::puppet_privdir}/${title}":
ensure => "${::puppet_privdir}/${l_fqdn}",
require => File["${::puppet_privdir}/${l_fqdn}"]
} # file
} # if
} # define puppet::puppetmaster::privatedir

View File

@@ -1,18 +1,18 @@
import "defines/*.pp" import 'defines/*.pp'
class puppet ( class puppet (
$ensure = "present", $ensure = 'present',
$norunifloggedin = false, $norunifloggedin = false,
$daemonize = true, $daemonize = true,
$run_hour = "*/1", $run_hour = '*/1',
$run_minute = "10", $run_minute = '10',
$run_if_ipmatch = "") { $run_if_ipmatch = '') {
$puppet_service = $kernel ? { $puppet_service = $kernel ? {
"Darwin" => "org.macports.puppet", 'Darwin' => 'org.macports.puppet',
"FreeBSD" => "puppetd", 'FreeBSD' => 'puppetd',
default => "puppet" default => 'puppet'
} }
$factpath = "/var/lib/puppet/lib/facter" $factpath = '/var/lib/puppet/lib/facter'
require 'puppet::common' require 'puppet::common'
@@ -24,113 +24,113 @@ class puppet (
# "$fqdn") } # "$fqdn") }
case $kernel { case $kernel {
"Linux" : { 'Linux' : {
$puppetpkgs = ["puppet", "puppet-common"] $puppetpkgs = ['puppet', 'puppet-common']
Package { Package {
provider => "apt" } provider => 'apt' }
} }
default : { default : {
$puppetpkgs = "puppet" $puppetpkgs = 'puppet'
} }
} }
$puppet_linuxversion_real = $::PUPPET_VERSION_LINUX ? { $puppet_linuxversion_real = $::PUPPET_VERSION_LINUX ? {
"" => "latest", '' => 'latest',
default => $::PUPPET_VERSION_LINUX, default => $::PUPPET_VERSION_LINUX,
} }
package { $puppetpkgs: $pkg_ens = $ensure ? {
ensure => $ensure ? { 'present' => $::kernel ? {
"present" => $kernel ? { 'Linux' => $puppet_linuxversion_real,
"Linux" => $puppet_linuxversion_real,
default => $ensure, default => $ensure,
} }, },
notify => Service["${puppet_service}"], default => $ensure,
}
package { $puppetpkgs:
ensure => $pkg_ens,
notify => Service[$puppet_service],
} }
service { "${puppet_service}": service { $puppet_service:
hasstatus => true, hasstatus => true,
enable => "${daemonize}", enable => $daemonize,
ensure => "${daemonize}", ensure => $daemonize,
} }
$cron_real = $daemonize ? { $cron_real = $daemonize ? {
false => "present", false => 'present',
true => "absent", true => 'absent',
default => $ensure, default => $ensure,
} }
notice("${fqdn} PUPPET-CRON: cron_real: ${cron_real}, daemonize: ${daemonize}, running: ${service_running}" notice("${fqdn} PUPPET-CRON: cron_real: ${cron_real}, daemonize: ${daemonize}, running: ${service_running}"
) )
cron { 'puppetrun': cron { 'puppetrun':
command => "/usr/local/sbin/puppetd_run.sh", command => '/usr/local/sbin/puppetd_run.sh',
user => root, user => 'root',
minute => $run_minute, minute => $run_minute,
hour => $run_hour, hour => $run_hour,
ensure => "${cron_real}", ensure => $cron_real,
} }
$maxsleep = 6400 $maxsleep = 6400
file { "/usr/local/sbin/puppetd_run.sh": file { '/usr/local/sbin/puppetd_run.sh':
content => template("puppet/puppetd_run.sh.erb"), content => template('puppet/puppetd_run.sh.erb'),
mode => 0700, mode => '0700',
alias => "puppetd_run.sh", alias => 'puppetd_run.sh',
ensure => $ensure; ensure => $ensure;
"/var/log/puppet": '/var/log/puppet':
mode => '0750', mode => '0750',
owner => 'puppet', owner => 'puppet',
group => 'puppet'; group => 'puppet';
} }
case $::kernel { case $::kernel {
"Darwin" : { 'Darwin' : {
file { "/Library/LaunchDaemons/org.macports.puppet.plist": file { '/Library/LaunchDaemons/org.macports.puppet.plist':
source => "puppet:///modules/puppet/org.macports.puppet.plist", source => 'puppet:///modules/puppet/org.macports.puppet.plist',
before => Service["${puppet_service}"], before => Service[$puppet_service],
} }
file { "/opt/local/lib/ruby/site_ruby/1.8/puppet/provider/package/appdmg.rb"
: ensure => "absent", }
} }
"Linux" : { 'Linux' : {
# replace { "enable_puppet": # replace { 'enable_puppet':
# file => "/etc/default/puppet", # file => '/etc/default/puppet',
# pattern => "START=no", # pattern => 'START=no',
# replacement => "START=yes", # replacement => 'START=yes',
# before => Service["${puppet_service}"], # before => Service[$puppet_service],
# } # }
if defined(Class['monit']) { if defined(Class['monit']) {
monit::process { "puppet": monit::process { 'puppet':
start => "/etc/init.d/puppet start", start => '/etc/init.d/puppet start',
stop => "/etc/init.d/puppet stop", stop => '/etc/init.d/puppet stop',
pidfile => "/var/run/puppet/agent.pid", pidfile => '/var/run/puppet/agent.pid',
additional => "if totalmem > 400 Mb for 10 cycles then RESTART", additional => 'if totalmem > 400 Mb for 10 cycles then RESTART',
ensure => $daemonize ? { ensure => $daemonize ? {
"true" => "present", true => 'present',
default => "absent", default => 'absent',
}, },
} }
} }
} }
} }
$puppet_user = $operatingsystem ? { $puppet_user = $operatingsystem ? {
"Darwin" => $adm, 'Darwin' => $adm,
default => "puppet", default => 'puppet',
} }
$puppet_group = $operatingsystem ? { $puppet_group = $operatingsystem ? {
"Darwin" => "wheel", 'Darwin' => 'wheel',
default => "puppet", default => 'puppet',
} }
# "FreeBSD" => "/usr/local/etc/puppet/puppet.conf", # 'FreeBSD' => '/usr/local/etc/puppet/puppet.conf',
$puppetconf = $operatingsystem ? { $puppetconf = $operatingsystem ? {
default => "/etc/puppet/puppet.conf", default => '/etc/puppet/puppet.conf',
} }
file { $puppetconf: file { $puppetconf:
content => template("puppet/puppet.conf.erb"), ensure => $ensure,
mode => 0644, content => template('puppet/puppet.conf.erb'),
mode => '0644',
owner => $puppet_user, owner => $puppet_user,
ensure => "${ensure}",
# require => [ Package["puppet"] ], # require => [ Package["puppet"] ],
} }

View File

@@ -1,9 +1,9 @@
class puppet::puppet-dashboard ($ensure = "present") { class puppet::puppet-dashboard ($ensure = 'present') {
require 'puppet::common' require 'puppet::common'
package { ["libjson-ruby", "puppet-dashboard"]: package { ['libjson-ruby', 'puppet-dashboard']:
ensure => $ensure, ensure => $ensure,
require => Apt::Source["puppet-dashboard"], require => Apt::Source['puppet-dashboard'],
} }
if !defined(Class['puppet::puppetlabs_apt']) { if !defined(Class['puppet::puppetlabs_apt']) {
@@ -11,28 +11,28 @@ class puppet::puppet-dashboard ($ensure = "present") {
require 'puppet::puppetlabs_apt' require 'puppet::puppetlabs_apt'
} }
apt::source { "puppet-dashboard": apt::source { 'puppet-dashboard':
key => "8347A27F", key => '8347A27F',
location => "http://apt.puppetlabs.com", location => 'http://apt.puppetlabs.com',
repos => "main", repos => 'main',
ensure => 'absent', ensure => 'absent',
} }
cron { "purge-reports": cron { 'purge-reports':
command => "cd /usr/share/puppet-dashboard && rake RAILS_ENV=production reports:prune upto=14 unit=day", command => 'cd /usr/share/puppet-dashboard && rake RAILS_ENV=production reports:prune upto=14 unit=day',
user => "www-data", user => 'www-data',
hour => "23", hour => '23',
minute => "2", minute => '2',
monthday => "*/14", monthday => '*/14',
ensure => $ensure, ensure => $ensure,
} }
cron { "purge-optimizedb": cron { 'purge-optimizedb':
command => "cd /usr/share/puppet-dashboard && rake RAILS_ENV=production db:raw:optimize", command => 'cd /usr/share/puppet-dashboard && rake RAILS_ENV=production db:raw:optimize',
user => "www-data", user => 'www-data',
hour => "23", hour => '23',
minute => "20", minute => '20',
monthday => "*/10", monthday => '*/10',
ensure => $ensure, ensure => $ensure,
} }
} }