summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README18
-rw-r--r--manifests/base.pp29
-rw-r--r--manifests/base/master.pp6
-rw-r--r--manifests/centos.pp6
-rw-r--r--manifests/cron.pp20
-rw-r--r--manifests/cron/base.pp24
-rw-r--r--manifests/cron/linux.pp13
-rw-r--r--manifests/cron/openbsd.pp26
-rw-r--r--manifests/debian.pp23
-rw-r--r--manifests/init.pp22
-rw-r--r--manifests/linux.pp12
-rw-r--r--manifests/master.pp73
-rw-r--r--manifests/master/base.pp31
-rw-r--r--manifests/master/centos.pp12
-rw-r--r--manifests/master/checklastrun.pp (renamed from manifests/puppetmaster/checklastrun.pp)12
-rw-r--r--manifests/master/checklastrun/disable.pp (renamed from manifests/puppetmaster/checklastrun/disable.pp)2
-rw-r--r--manifests/master/cleanup_reports.pp7
-rw-r--r--manifests/master/cleanup_reports/disable.pp6
-rw-r--r--manifests/master/cluster.pp5
-rw-r--r--manifests/master/cluster/base.pp (renamed from manifests/puppetmaster/cluster/base.pp)4
-rw-r--r--manifests/master/debian.pp19
-rw-r--r--manifests/master/hasdb.pp17
-rw-r--r--manifests/master/hasdb/mysql.pp (renamed from manifests/puppetmaster/hasdb/mysql.pp)6
-rw-r--r--manifests/master/linux.pp (renamed from manifests/puppetmaster/linux.pp)6
-rw-r--r--manifests/master/munin.pp (renamed from manifests/puppetmaster/munin.pp)2
-rw-r--r--manifests/master/package.pp9
-rw-r--r--manifests/master/package/base.pp10
-rw-r--r--manifests/master/package/centos.pp (renamed from manifests/puppetmaster/package/centos.pp)2
-rw-r--r--manifests/master/package/debian.pp (renamed from manifests/puppetmaster/package/debian.pp)2
-rw-r--r--manifests/master/passenger.pp (renamed from manifests/puppetmaster/passenger.pp)4
-rw-r--r--manifests/master/storeconfigs.pp (renamed from manifests/puppetmaster/storeconfigs.pp)2
-rw-r--r--manifests/puppetmaster.pp49
-rw-r--r--manifests/puppetmaster/base.pp38
-rw-r--r--manifests/puppetmaster/centos.pp12
-rw-r--r--manifests/puppetmaster/cleanup_reports.pp8
-rw-r--r--manifests/puppetmaster/cleanup_reports/disable.pp6
-rw-r--r--manifests/puppetmaster/cluster.pp5
-rw-r--r--manifests/puppetmaster/debian.pp19
-rw-r--r--manifests/puppetmaster/hasdb.pp17
-rw-r--r--manifests/puppetmaster/package.pp9
-rw-r--r--manifests/puppetmaster/package/base.pp10
41 files changed, 318 insertions, 285 deletions
diff --git a/README b/README
index 3c71a5f..d30a8e9 100644
--- a/README
+++ b/README
@@ -1,10 +1,10 @@
Puppet-Module for configuring Puppet itself, both the master and the clients
============================================================================
-Use a seperate local module called "site-puppet", where you place your customized
+Use a seperate local module called "site_puppet", where you place your customized
files, under:
- site-puppet/files/master/fileserver.conf
- site-puppet/files/master/puppet.conf
+ site_puppet/files/master/fileserver.conf
+ site_puppet/files/master/puppet.conf
Usage
=====
@@ -19,14 +19,14 @@ By default puppet runs as its own daemon. However, you might want to run puppet
by cron. To do this, you have to include `puppet::cron` instead of `puppet`. If
you include puppet::cron then by default puppet will run twice an hour, spread
amongst the half an hour depending on the host's fqdn. If you wish to change
-that interval, you can tweak $puppet_crontime (NOTE: this variable only operates
+that interval, you can tweak $crontime (NOTE: this variable only operates
on the minute cron field).
Clientbucket cleanup:
---------------------
The individual node client buckets aren't cleaned up automatically, unless you
-specify $puppet_cleanup_clientbucket = 'X', where X is the number of days you
+specify cleanup_clientbucket = 'X', where X is the number of days you
want to keep clientbucket files for.
Use http compression
@@ -95,7 +95,7 @@ $puppet_storeconfig_password to the puppet database password, and then set
$puppetmaster_storeconfigs = true to enable stored configs.
Then you will need to either put in your node definition, or in
-site-puppet/manifests/init.pp puppet::puppetmaster::hasdb to setup the database
+site_puppet/manifests/init.pp puppet::puppetmaster::hasdb to setup the database
with the right parameters. This will setup your storeconfigs database, adding to
the database the correct user, the correct grant permissions, and also setup
a munin graph, if you have $use_munin = true
@@ -115,14 +115,14 @@ node puppetmaster {
$use_munin = true
$puppetmaster_mode = 'passenger'
$puppet_crontime = "0,12 * * * *"
- include site-puppet::master
+ include site_puppet::master
include puppet::cron
include puppet::puppetmaster
...
-in your site-puppet/manifests/master.pp you could include something like:
+in your site_puppet/manifests/master.pp you could include something like:
-class site-puppet::master {
+class site_puppet::master {
...
puppet::puppetmaster::hasdb { "puppet":
dbname => 'puppetmaster',
diff --git a/manifests/base.pp b/manifests/base.pp
index 695241c..9e597a8 100644
--- a/manifests/base.pp
+++ b/manifests/base.pp
@@ -1,36 +1,33 @@
class puppet::base {
- if !$puppet_config { $puppet_config = '/etc/puppet/puppet.conf' }
-
- $puppet_majorversion = regsubst($puppetversion,'^(\d+\.\d+).*$','\1')
-
- case $puppet_cleanup_clientbucket {
+ $puppet_majorversion = regsubst($::puppetversion,'^(\d+\.\d+).*$','\1')
+ case $puppet::cleanup_clientbucket {
# if not set, don't do anything
- '',undef: {}
- default: {
+ '',undef,false: {}
+ default: {
tidy { "/var/lib/puppet/clientbucket":
backup => false,
recurse => true,
rmdirs => true,
type => mtime,
- age => "$puppet_cleanup_clientbucket";
+ age => "$puppet::cleanup_clientbucket";
}
}
}
file { 'puppet_config':
- path => "$puppet_config",
- source => [ "puppet:///modules/site-puppet/client/${fqdn}/puppet.conf",
- "puppet:///modules/site-puppet/client/puppet.conf.$operatingsystem",
- "puppet:///modules/site-puppet/client/puppet.conf",
- "puppet:///modules/puppet/client/${puppet_majorversion}/puppet.conf.$operatingsystem",
+ path => $puppet::config,
+ source => [ "puppet:///modules/site_puppet/client/${::fqdn}/puppet.conf",
+ "puppet:///modules/site_puppet/client/puppet.conf.${::operatingsystem}",
+ "puppet:///modules/site_puppet/client/puppet.conf",
+ "puppet:///modules/puppet/client/${puppet_majorversion}/puppet.conf.${::operatingsystem}",
"puppet:///modules/puppet/client/${puppet_majorversion}/puppet.conf",
- "puppet:///modules/puppet/client/puppet.conf.$operatingsystem",
+ "puppet:///modules/puppet/client/puppet.conf.${::operatingsystem}",
"puppet:///modules/puppet/client/puppet.conf" ],
notify => Service[puppet],
- # if puppetmasterd is deployed by apache2/passenger it needs to read puppet.conf
+ # if puppetmasterd is deployed by apache2/passenger it needs to read puppet.conf
# therefore it must be readable by puppet
- owner => puppet, group => 0, mode => 600;
+ owner => puppet, group => 0, mode => 600;
}
service { 'puppet':
diff --git a/manifests/base/master.pp b/manifests/base/master.pp
new file mode 100644
index 0000000..09c9b62
--- /dev/null
+++ b/manifests/base/master.pp
@@ -0,0 +1,6 @@
+class puppet::base::master inherits puppet::base {
+ File[puppet_config]{
+ source => [ "puppet:///modules/site_puppet/master/puppet.conf",
+ "puppet:///modules/puppet/master/puppet.conf" ],
+ }
+}
diff --git a/manifests/centos.pp b/manifests/centos.pp
index 61aa065..547b064 100644
--- a/manifests/centos.pp
+++ b/manifests/centos.pp
@@ -1,9 +1,9 @@
class puppet::centos inherits puppet::linux {
file { '/etc/sysconfig/puppet':
- source => [ "puppet:///modules/site-puppet/sysconfig/${fqdn}/puppet",
- "puppet:///modules/site-puppet/sysconfig/${domain}/puppet",
- "puppet:///modules/site-puppet/sysconfig/puppet",
+ source => [ "puppet:///modules/site_puppet/sysconfig/${::fqdn}/puppet",
+ "puppet:///modules/site_puppet/sysconfig/${::domain}/puppet",
+ "puppet:///modules/site_puppet/sysconfig/puppet",
"puppet:///modules/puppet/sysconfig/puppet" ],
notify => Service[puppet],
owner => root, group => 0, mode => 0644;
diff --git a/manifests/cron.pp b/manifests/cron.pp
index 5f9f227..5e3cc64 100644
--- a/manifests/cron.pp
+++ b/manifests/cron.pp
@@ -1,9 +1,23 @@
-class puppet::cron inherits puppet {
- case $operatingsystem {
+class puppet::cron(
+ $cron_time,
+ $config = hiera('puppet_config','/etc/puppet/puppet.conf'),
+ $http_compression = hiera('puppet_http_compression',false),
+ $cleanup_clientbucket = hiera('puppet_cleanup_clientbucket',false),
+ $ensure_version = hiera('puppet_ensure_version', 'installed'),
+ $ensure_facter_version = hiera('puppet_ensure_facter_version', 'installed'),
+) {
+ class{'puppet':
+ config => $config,
+ http_compression => $http_compression,
+ cleanup_clientbucket => $cleanup_clientbucket,
+ ensure_version => $ensure_version,
+ ensure_facter_version => $ensure_facter_version
+ }
+ case $::operatingsystem {
debian: { include puppet::cron::debian }
openbsd: { include puppet::cron::openbsd }
default: {
- case $kernel {
+ case $::kernel {
linux: { include puppet::cron::linux }
default: { include puppet::cron::base }
}
diff --git a/manifests/cron/base.pp b/manifests/cron/base.pp
index 7b40da6..42222d6 100644
--- a/manifests/cron/base.pp
+++ b/manifests/cron/base.pp
@@ -1,19 +1,33 @@
# manifests/cron/base.pp
class puppet::cron::base inherits puppet::base {
- case $operatingsystem {
- debian: { if $lsbdistcodename != 'lenny' { $stop_service = true } else { $stop_service = false } }
+ case $::operatingsystem {
+ debian: { if $::lsbdistcodename != 'lenny' { $stop_service = true } else { $stop_service = false } }
openbsd, ubuntu: { $stop_service = false }
default: { $stop_service = true }
}
-
+
+ if !$puppet::cron::cron_time {
+ $crontime_interval_minute = fqdn_rand(29)
+ $crontime_interval_minute2 = inline_template("<%= 30+scope.lookupvar('puppet::cron::cron_time').to_i %>")
+ $crontime = "${crontime_interval_minute},${crontime_interval_minute2} * * * *"
+ } else {
+ $crontime = $puppet::cron::cron_time
+ }
+
+ if $puppet::http_compression {
+ $http_compression_str = '--http_compression'
+ } else {
+ $http_compression_str = ''
+ }
+
Service['puppet']{
enable => false,
}
if $stop_service == true {
- $puppet_majorversion = regsubst($puppetversion,'^(\d+\.\d+).*$','\1')
- if $puppet_majorversion == '2.6' {
+ $puppet_majorversion = regsubst($::puppetversion,'^(\d+\.\d+).*$','\1')
+ if $puppet_majorversion == '2.6' {
Service['puppet']{
ensure => stopped,
}
diff --git a/manifests/cron/linux.pp b/manifests/cron/linux.pp
index bab9564..5452cc7 100644
--- a/manifests/cron/linux.pp
+++ b/manifests/cron/linux.pp
@@ -1,20 +1,11 @@
-# manifests/cron/linux.pp
+# manifests/cron/linux.pp
class puppet::cron::linux inherits puppet::linux {
include puppet::cron::base
- if !$puppet_config { $puppet_config = '/etc/puppet/puppet.conf' }
- if $puppet_http_compression { $puppet_http_compression_str = '--http_compression' }
-
-
- if !$puppet_crontime {
- $puppet_crontime_interval_minute = fqdn_rand(29)
- $puppet_crontime_interval_minute2 = inline_template('<%= 30+puppet_crontime_interval_minute.to_i %>')
- $puppet_crontime = "${puppet_crontime_interval_minute},${puppet_crontime_interval_minute2} * * * *"
- }
File['/etc/cron.d/puppetd.cron']{
source => undef,
- content => "#run puppet\n$puppet_crontime root output=\$(/usr/sbin/puppetd --onetime --no-daemonize --splay --config=/etc/puppet/puppet.conf --color false); ret=\$?; printf \"\\%s\" \"\$output\" | grep -E '(^err:|^alert:|^emerg:|^crit:)'; exit \$ret\n",
+ content => "#run puppet\n$puppet::cron::base::crontime root output=\$(/usr/sbin/puppetd --onetime --no-daemonize --splay --config=/etc/puppet/puppet.conf --color false ${puppet::cron::base::http_compression_str}); ret=\$?; printf \"\\%s\" \"\$output\" | grep -E '(^err:|^alert:|^emerg:|^crit:)'; exit \$ret\n",
before => Service['puppet'],
}
}
diff --git a/manifests/cron/openbsd.pp b/manifests/cron/openbsd.pp
index 084b022..0e4a813 100644
--- a/manifests/cron/openbsd.pp
+++ b/manifests/cron/openbsd.pp
@@ -1,32 +1,24 @@
class puppet::cron::openbsd inherits puppet::openbsd {
- include puppet::cron::base
- if !$puppet_config { $puppet_config = '/etc/puppet/puppet.conf' }
- if $puppet_http_compression { $puppet_http_compression_str = '--http_compression' }
-
- if !$puppet_crontime {
- $puppet_crontime_interval_minute = fqdn_rand(29)
- $puppet_crontime_interval_minute2 = inline_template('<%= 30+puppet_crontime_interval_minute.to_i %>')
- $puppet_crontime = "${puppet_crontime_interval_minute},${puppet_crontime_interval_minute2} * * * *"
- }
+ include puppet::cron::base
Openbsd::Rc_local['puppetd']{
ensure => 'absent',
}
Cron['puppetd_check']{
- ensure => absent,
+ ensure => absent,
}
Cron['puppetd_restart']{
- ensure => absent,
+ ensure => absent,
}
cron { 'puppetd_run':
- command => "/usr/local/bin/puppet agent --onetime --no-daemonize --config=$puppet_config --color false $puppet_http_compression_str | grep -E '(^err:|^alert:|^emerg:|^crit:)'",
+ command => "/usr/local/bin/puppet agent --onetime --no-daemonize --config=$puppet::config --color false ${puppet::cron::base::http_compression_str} | grep -E '(^err:|^alert:|^emerg:|^crit:)'",
user => 'root',
- minute => split(regsubst($puppet_crontime,'^([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+)$','\1'),','),
- hour => split(regsubst($puppet_crontime,'^([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+)$','\2'),','),
- weekday => split(regsubst($puppet_crontime,'^([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+)$','\3'),','),
- month => split(regsubst($puppet_crontime,'^([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+)$','\4'),','),
- monthday => split(regsubst($puppet_crontime,'^([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+)$','\5'),',')
+ minute => split(regsubst($puppet::cron::base::crontime,'^([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+)$','\1'),','),
+ hour => split(regsubst($puppet::cron::base::crontime,'^([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+)$','\2'),','),
+ weekday => split(regsubst($puppet::cron::base::crontime,'^([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+)$','\3'),','),
+ month => split(regsubst($puppet::cron::base::crontime,'^([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+)$','\4'),','),
+ monthday => split(regsubst($puppet::cron::base::crontime,'^([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+) ([\d,\-,*,/,\,]+)$','\5'),',')
}
}
diff --git a/manifests/debian.pp b/manifests/debian.pp
index f0479ae..70f8161 100644
--- a/manifests/debian.pp
+++ b/manifests/debian.pp
@@ -1,35 +1,34 @@
class puppet::debian inherits puppet::linux {
file { '/etc/default/puppet':
- source => [ "puppet:///modules/site-puppet/client/debian/${fqdn}/puppet",
- "puppet:///modules/site-puppet/client/debian/${domain}/puppet",
- "puppet:///modules/site-puppet/client/debian/puppet",
+ source => [ "puppet:///modules/site_puppet/client/debian/${::fqdn}/puppet",
+ "puppet:///modules/site_puppet/client/debian/${::domain}/puppet",
+ "puppet:///modules/site_puppet/client/debian/puppet",
"puppet:///modules/puppet/client/debian/puppet" ],
notify => Service[puppet],
owner => root, group => 0, mode => 0644;
- }
+ }
- case $lsbdistcodename {
+ case $::lsbdistcodename {
squeeze,sid: {
- $real_puppet_hasstatus = true
+ $puppet_hasstatus = true
}
default: {
- $real_puppet_hasstatus = false
+ $puppet_hasstatus = false
}
}
-
+
Service[puppet]{
- hasstatus => $real_puppet_hasstatus,
+ hasstatus => $puppet_hasstatus,
}
- if !$puppet_ensure_version { $puppet_ensure_version = 'installed' }
package{ 'puppet-common':
- ensure => $puppet_ensure_version,
+ ensure => $puppet::ensure_version,
}
Package['puppet']{
require => Package['puppet-common']
- }
+ }
}
diff --git a/manifests/init.pp b/manifests/init.pp
index e9d9748..d6f605c 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -12,16 +12,22 @@
# Marcel Härry haerry+puppet(at)puzzle.ch
# Simon Josi josi+puppet(at)puzzle.ch
#
-# This program is free software; you can redistribute
-# it and/or modify it under the terms of the GNU
-# General Public License version 3 as published by
+# This program is free software; you can redistribute
+# it and/or modify it under the terms of the GNU
+# General Public License version 3 as published by
# the Free Software Foundation.
#
-class puppet {
- case $kernel {
- linux: {
- case $operatingsystem {
+class puppet(
+ $config = hiera('puppet_config','/etc/puppet/puppet.conf'),
+ $http_compression = hiera('puppet_http_compression',false),
+ $cleanup_clientbucket = hiera('puppet_cleanup_clientbucket',false),
+ $ensure_version = hiera('puppet_ensure_version', 'installed'),
+ $ensure_facter_version = hiera('puppet_ensure_facter_version', 'installed'),
+) {
+ case $::kernel {
+ linux: {
+ case $::operatingsystem {
gentoo: { include puppet::gentoo }
centos: { include puppet::centos }
debian,ubuntu: { include puppet::debian }
@@ -32,7 +38,7 @@ class puppet {
default: { include puppet::base }
}
- if $use_shorewall {
+ if hiera('use_shorewall',false) {
include shorewall::rules::out::puppet
}
}
diff --git a/manifests/linux.pp b/manifests/linux.pp
index fcd3936..6fc17ba 100644
--- a/manifests/linux.pp
+++ b/manifests/linux.pp
@@ -1,22 +1,20 @@
class puppet::linux inherits puppet::base {
- if !$puppet_ensure_version { $puppet_ensure_version = 'installed' }
package { 'puppet':
- ensure => $puppet_ensure_version,
+ ensure => $puppet::ensure_version,
}
- if !$facter_ensure_version { $facter_ensure_version = 'installed' }
package { 'facter':
- ensure => $facter_ensure_version,
+ ensure => $puppet::ensure_facter_version,
}
Service['puppet']{
require => Package[puppet],
}
-
+
file { '/etc/cron.d/puppetd.cron':
- source => [ "puppet:///modules/site-puppet/cron.d/puppetd",
- "puppet:///modules/puppet/cron.d/puppetd.${operatingsystem}",
+ source => [ "puppet:///modules/site_puppet/cron.d/puppetd",
+ "puppet:///modules/puppet/cron.d/puppetd.${::operatingsystem}",
"puppet:///modules/puppet/cron.d/puppetd" ],
owner => root, group => 0, mode => 0644,
}
diff --git a/manifests/master.pp b/manifests/master.pp
new file mode 100644
index 0000000..5ca0acc
--- /dev/null
+++ b/manifests/master.pp
@@ -0,0 +1,73 @@
+# manifests/puppetmaster.pp
+class puppet::master(
+ $config = hiera('puppet_config','/etc/puppet/puppet.conf'),
+ $http_compression = hiera('puppet_http_compression',false),
+ $cleanup_clientbucket = hiera('puppet_cleanup_clientbucket',false),
+ $cron_time = hiera('puppet_cron_time',false),
+ $ensure_version = hiera('puppet_ensure_version', 'installed'),
+ $ensure_facter_version = hiera('puppet_ensure_facter_version', 'installed'),
+ $lastruncheck_cron = hiera('puppet_master_lastruncheck_cron','40 10 * * *'),
+ $lastruncheck_ignorehosts = hiera('puppet_master_lastruncheck_ignorehosts',''),
+ $lastruncheck_timeout = hiera('puppet_master_lastruncheck_timeout',''),
+ $lastruncheck_additionaloptions = hiera('puppet_master_lastruncheck_additionaloptions',''),
+ $mode = hiera('puppet_master_mode','webrick'),
+ $cleanup_reports = hiera('puppet_master_cleanup_reports','30'),
+ $reports_dir = hiera('puppet_master_reports_dir','/var/lib/puppet/reports'),
+) {
+ if $cron_time {
+ class{'puppet::cron':
+ config => $config,
+ http_compression => $http_compression,
+ cleanup_clientbucket => $cleanup_clientbucket,
+ cron_time => $cron_time,
+ ensure_version => $ensure_version,
+ ensure_facter_version => $ensure_facter_version,
+ }
+ } else {
+ class{'puppet':
+ config => $config,
+ http_compression => $http_compression,
+ cleanup_clientbucket => $cleanup_clientbucket,
+ ensure_version => $ensure_version,
+ ensure_facter_version => $ensure_facter_version,
+ }
+ }
+ case $::operatingsystem {
+ debian: { include puppet::master::debian }
+ centos: { include puppet::master::centos }
+ default: {
+ case $::kernel {
+ linux: { include puppet::master::linux }
+ }
+ }
+ }
+
+ include puppet::master::base
+
+
+ if $puppet::master::lastruncheck_cron {
+ include puppet::master::checklastrun
+ } else {
+ include puppet::master::checklastrun::disable
+ }
+
+ if $puppet::master::mode == 'passenger' {
+ include puppet::master::passenger
+ } elsif $puppet::master::mode == 'cluster' {
+ include puppet::master::cluster
+ }
+
+ if $puppet::master::cleanup_reports {
+ include puppet::master::cleanup_reports
+ } else {
+ include puppet::master::cleanup_reports::disable
+ }
+
+ if hiera('use_shorewall',false) {
+ include shorewall::rules::puppet::master
+ }
+
+ if hiera('use_munin',false) {
+ include puppet::master::munin
+ }
+}
diff --git a/manifests/master/base.pp b/manifests/master/base.pp
new file mode 100644
index 0000000..80fe8e0
--- /dev/null
+++ b/manifests/master/base.pp
@@ -0,0 +1,31 @@
+class puppet::master::base inherits puppet::base {
+
+ file { $puppet::master::fileserverconfig:
+ source => [ "puppet:///modules/site_puppet/master/${::fqdn}/fileserver.conf",
+ "puppet:///modules/site_puppet/master/fileserver.conf",
+ "puppet:///modules/puppet/master/fileserver.conf" ],
+ owner => root, group => puppet, mode => 640;
+ }
+
+ if $puppet::master::storeconfigs {
+ include puppet::master::storeconfigs
+ }
+
+
+ if $puppet::master::mode == 'passenger' {
+ include puppet::master::passenger
+ File[$puppet::master::fileserverconfig]{
+ notify => Exec['notify_passenger_puppetmaster'],
+ }
+ File[puppet_config]{
+ notify => Exec['notify_passenger_puppetmaster'],
+ }
+ } else {
+ File[$puppet::master::fileserverconfig]{
+ notify => Service[puppetmaster],
+ }
+ File[puppet_config]{
+ notify => Service[puppetmaster],
+ }
+ }
+}
diff --git a/manifests/master/centos.pp b/manifests/master/centos.pp
new file mode 100644
index 0000000..82a8436
--- /dev/null
+++ b/manifests/master/centos.pp
@@ -0,0 +1,12 @@
+# manifests/puppetmaster/centos.pp
+class puppet::master::centos inherits puppet::master::package {
+
+ file { '/etc/sysconfig/puppetmaster':
+ source => [ "puppet:///modules/site_puppet/sysconfig/${::fqdn}/puppetmaster",
+ "puppet:///modules/site_puppet/sysconfig/${::domain}/puppetmaster",
+ "puppet:///modules/site_puppet/sysconfig/puppetmaster",
+ "puppet:///modules/puppet/sysconfig/puppetmaster" ],
+ notify => Service[puppetmaster],
+ owner => root, group => 0, mode => 0644;
+ }
+}
diff --git a/manifests/puppetmaster/checklastrun.pp b/manifests/master/checklastrun.pp
index 93ed8b9..bde5a97 100644
--- a/manifests/puppetmaster/checklastrun.pp
+++ b/manifests/master/checklastrun.pp
@@ -1,15 +1,15 @@
-class puppet::puppetmaster::checklastrun {
+class puppet::master::checklastrun {
- $puppet_lastruncheck_ignorehosts_str = $puppet_lastruncheck_ignorehosts ? {
+ $puppet_lastruncheck_ignorehosts_str = $puppet::master::lastruncheck_ignorehosts ? {
'' => '',
undef => '',
- default => "--ignore-hosts ${puppet_lastruncheck_ignorehosts}"
+ default => "--ignore-hosts ${puppet::master::lastruncheck_ignorehosts}"
}
- $puppet_lastruncheck_timeout_str = $puppet_lastruncheck_timeout ? {
+ $puppet_lastruncheck_timeout_str = $puppet::master::lastruncheck_timeout ? {
'' => '',
undef => '',
- default => "--timeout ${puppet_lastruncheck_timeout}"
+ default => "--timeout ${puppet::master::lastruncheck_timeout}"
}
file{
@@ -18,7 +18,7 @@ class puppet::puppetmaster::checklastrun {
owner => root, group => 0, mode => 0700;
'/etc/cron.d/puppetlast.cron':
- content => "${puppetmaster_lastruncheck_cron} root /usr/local/sbin/puppetlast ${puppet_lastruncheck_timeout_str} ${puppet_lastruncheck_ignorehosts_str} ${$puppet_lastruncheck_additionaloptions}\n",
+ content => "${puppetmaster_lastruncheck_cron} root /usr/local/sbin/puppetlast ${puppet_lastruncheck_timeout_str} ${puppet_lastruncheck_ignorehosts_str} ${puppet::master::lastruncheck_additionaloptions}\n",
require => File["/usr/local/sbin/puppetlast"],
owner => root, group => 0, mode => 0644,
}
diff --git a/manifests/puppetmaster/checklastrun/disable.pp b/manifests/master/checklastrun/disable.pp
index 8fff212..655253d 100644
--- a/manifests/puppetmaster/checklastrun/disable.pp
+++ b/manifests/master/checklastrun/disable.pp
@@ -1,4 +1,4 @@
-class puppet::puppetmaster::checklastrun::disable inherits puppet::puppetmaster::checklastrun {
+class puppet::master::checklastrun::disable inherits puppet::master::checklastrun {
File['/usr/local/sbin/puppetlast']{
source => undef,
diff --git a/manifests/master/cleanup_reports.pp b/manifests/master/cleanup_reports.pp
new file mode 100644
index 0000000..98cb81a
--- /dev/null
+++ b/manifests/master/cleanup_reports.pp
@@ -0,0 +1,7 @@
+class puppet::master::cleanup_reports {
+ # clean up reports older than $puppetmaster_cleanup_reports days
+ file { '/etc/cron.daily/puppet_reports_cleanup.sh':
+ content => "#!/bin/bash\nfind ${puppet::master::reports_dir} -maxdepth 2 -type f -ctime +${puppet::master::cleanup_reports} -exec rm {} \\;\n",
+ owner => root, group => 0, mode => 0700;
+ }
+}
diff --git a/manifests/master/cleanup_reports/disable.pp b/manifests/master/cleanup_reports/disable.pp
new file mode 100644
index 0000000..e93e72a
--- /dev/null
+++ b/manifests/master/cleanup_reports/disable.pp
@@ -0,0 +1,6 @@
+class puppet::master::cleanup_reports::disable inherits puppet::master::cleanup_reports {
+
+ File['/etc/cron.daily/puppet_reports_cleanup.sh']{
+ ensure => absent,
+ }
+}
diff --git a/manifests/master/cluster.pp b/manifests/master/cluster.pp
new file mode 100644
index 0000000..d6aa4fd
--- /dev/null
+++ b/manifests/master/cluster.pp
@@ -0,0 +1,5 @@
+class puppet::master::cluster inherits puppet::master {
+
+ include puppet::master::cluster::base
+
+}
diff --git a/manifests/puppetmaster/cluster/base.pp b/manifests/master/cluster/base.pp
index 8c90153..cad0d7d 100644
--- a/manifests/puppetmaster/cluster/base.pp
+++ b/manifests/master/cluster/base.pp
@@ -1,7 +1,7 @@
-class puppet::puppetmaster::cluster::base inherits puppet::puppetmaster::base {
+class puppet::master::cluster::base inherits puppet::master::base {
include mongrel, nginx
-
+
File[puppet_config] {
require +> [ Package[mongrel], Package[nginx], File[nginx_config] ],
}
diff --git a/manifests/master/debian.pp b/manifests/master/debian.pp
new file mode 100644
index 0000000..f51a319
--- /dev/null
+++ b/manifests/master/debian.pp
@@ -0,0 +1,19 @@
+class puppet::master::debian inherits puppet::master::package {
+
+ if $puppet::master::mode != 'passenger' {
+ case $::lsbdistcodename {
+ squeeze,sid: {
+ Service['puppetmaster'] { hasstatus => true, hasrestart => true }
+ }
+ }
+ }
+
+ file { '/etc/default/puppetmaster':
+ source => [ "puppet:///modules/site_puppet/master/debian/${::fqdn}/puppetmaster",
+ "puppet:///modules/site_puppet/master/debian/${::domain}/puppetmaster",
+ "puppet:///modules/site_puppet/master/debian/puppetmaster",
+ "puppet:///modules/puppet/master/debian/puppetmaster" ],
+ notify => Service[puppetmaster],
+ owner => root, group => 0, mode => 0644;
+ }
+}
diff --git a/manifests/master/hasdb.pp b/manifests/master/hasdb.pp
new file mode 100644
index 0000000..d3bf388
--- /dev/null
+++ b/manifests/master/hasdb.pp
@@ -0,0 +1,17 @@
+define puppet::master::hasdb (
+ $dbtype = 'mysql',
+ $dbname = 'puppet',
+ $dbhost = 'localhost',
+ # this is needed due to the collection of the databases
+ $dbhostfqdn = $::fqdn,
+ $dbuser = 'puppet',
+ $dbpwd = hiera('puppet_master_storeconfigs_password',false),
+ $dbconnectinghost = 'locahost'
+) {
+
+ if !$dbpwd { fail("No \$puppet_master_storeconfig_password is set, please set it in your hiera database") }
+
+ case $dbtype {
+ 'mysql': { puppet::master::hasdb::mysql{$name: dbname => $dbname, dbhost => $dbhost, dbuser => $dbuser, dbpwd => $dbpwd, } }
+ }
+}
diff --git a/manifests/puppetmaster/hasdb/mysql.pp b/manifests/master/hasdb/mysql.pp
index 1ed122a..bc15756 100644
--- a/manifests/puppetmaster/hasdb/mysql.pp
+++ b/manifests/master/hasdb/mysql.pp
@@ -1,8 +1,8 @@
# don't use this define use the general interface
-define puppet::puppetmaster::hasdb::mysql (
+define puppet::master::hasdb::mysql (
$dbname = 'puppet',
$dbhost = 'localhost',
- $dbhostfqdn = "${fqdn}",
+ $dbhostfqdn = $::fqdn,
$dbuser = 'puppet',
$dbpwd,
$dbconnectinghost = 'localhost' )
@@ -23,7 +23,7 @@ define puppet::puppetmaster::hasdb::mysql (
tag => "mysql_${dbhostfqdn}",
}
- if $use_munin {
+ if hiera('use_munin',false) {
munin::plugin::deploy { 'puppetresources':
source => "puppet/munin/puppetresources.mysql",
config => "env.mysqlopts --user=$dbuser --password=$dbpwd -h $dbhost\nenv.puppetdb $dbname",
diff --git a/manifests/puppetmaster/linux.pp b/manifests/master/linux.pp
index 2670203..d2fb5b1 100644
--- a/manifests/puppetmaster/linux.pp
+++ b/manifests/master/linux.pp
@@ -1,6 +1,6 @@
-class puppet::puppetmaster::linux inherits puppet::linux {
-
- if $puppetmaster_mode == 'passenger' {
+class puppet::master::linux inherits puppet::linux {
+
+ if $puppet::master::mode == 'passenger' {
exec { 'notify_passenger_puppetmaster':
refreshonly => true,
command => 'touch /etc/puppet/rack/tmp/restart.txt && sleep 1 && rm /etc/puppet/rack/tmp/restart.txt',
diff --git a/manifests/puppetmaster/munin.pp b/manifests/master/munin.pp
index 4500b74..8046162 100644
--- a/manifests/puppetmaster/munin.pp
+++ b/manifests/master/munin.pp
@@ -1,4 +1,4 @@
-class puppet::puppetmaster::munin {
+class puppet::master::munin {
munin::plugin::deploy {
[ 'puppetmaster_memory', 'puppet_clients' ]:
diff --git a/manifests/master/package.pp b/manifests/master/package.pp
new file mode 100644
index 0000000..03d8de6
--- /dev/null
+++ b/manifests/master/package.pp
@@ -0,0 +1,9 @@
+# manifests/puppetmaster/package.pp
+
+class puppet::master::package inherits puppet::master::linux {
+ case $::operatingsystem {
+ centos: { include puppet::master::package::centos }
+ debian: { include puppet::master::package::debian }
+ default: { include puppet::master::package::base }
+ }
+}
diff --git a/manifests/master/package/base.pp b/manifests/master/package/base.pp
new file mode 100644
index 0000000..0a1fa33
--- /dev/null
+++ b/manifests/master/package/base.pp
@@ -0,0 +1,10 @@
+class puppet::master::package::base inherits puppet::master::package {
+
+ package { 'puppetmaster':
+ ensure => $puppet::ensure_version,
+ }
+
+ Service['puppetmaster']{
+ require +> Package['puppetmaster'],
+ }
+}
diff --git a/manifests/puppetmaster/package/centos.pp b/manifests/master/package/centos.pp
index 43361fd..63adc64 100644
--- a/manifests/puppetmaster/package/centos.pp
+++ b/manifests/master/package/centos.pp
@@ -1,4 +1,4 @@
-class puppet::puppetmaster::package::centos inherits puppet::puppetmaster::package::base {
+class puppet::master::package::centos inherits puppet::master::package::base {
Package['puppetmaster']{
name => 'puppet-server',
diff --git a/manifests/puppetmaster/package/debian.pp b/manifests/master/package/debian.pp
index 9d7d397..0cb351c 100644
--- a/manifests/puppetmaster/package/debian.pp
+++ b/manifests/master/package/debian.pp
@@ -1,4 +1,4 @@
-class puppet::puppetmaster::package::debian inherits puppet::puppetmaster::package::base {
+class puppet::master::package::debian inherits puppet::master::package::base {
package { 'puppetmaster-common':
ensure => present,
diff --git a/manifests/puppetmaster/passenger.pp b/manifests/master/passenger.pp
index c4bc062..03e1aa4 100644
--- a/manifests/puppetmaster/passenger.pp
+++ b/manifests/master/passenger.pp
@@ -1,6 +1,6 @@
# class to use passenger for serving puppetmaster
-class puppet::puppetmaster::passenger inherits puppet::puppetmaster::base {
+class puppet::master::passenger inherits puppet::master::base {
include ::passenger
@@ -13,7 +13,7 @@ class puppet::puppetmaster::passenger inherits puppet::puppetmaster::base {
owner => root, group => 0, mode => 0755;
'/etc/puppet/rack/config.ru':
- source => [ "puppet:///modules/site-puppet/master/config.ru",
+ source => [ "puppet:///modules/site_puppet/master/config.ru",
"puppet:///modules/puppet/master/config.ru" ],
owner => puppet, group => 0, mode => 0644;
}
diff --git a/manifests/puppetmaster/storeconfigs.pp b/manifests/master/storeconfigs.pp
index 63c1191..e3ba6fb 100644
--- a/manifests/puppetmaster/storeconfigs.pp
+++ b/manifests/master/storeconfigs.pp
@@ -1,7 +1,7 @@
# This class sets up the necessary ActiveRecord bits
# so storeconfigs works.
-class puppet::puppetmaster::storeconfigs {
+class puppet::master::storeconfigs {
include rails
include mysql::server
include mysql::client::ruby
diff --git a/manifests/puppetmaster.pp b/manifests/puppetmaster.pp
deleted file mode 100644
index 3e8711c..0000000
--- a/manifests/puppetmaster.pp
+++ /dev/null
@@ -1,49 +0,0 @@
-# manifests/puppetmaster.pp
-class puppet::puppetmaster inherits puppet {
- case $operatingsystem {
- debian: { include puppet::puppetmaster::debian }
- centos: { include puppet::puppetmaster::centos }
- default: {
- case $kernel {
- linux: { include puppet::puppetmaster::linux }
- }
- }
- }
-
- include puppet::puppetmaster::base
-
-
- case $puppetmaster_lastruncheck_cron {
- '',undef: { $puppetmaster_lastruncheck_cron = '40 10 * * *' }
- }
-
- if $puppetmaster_lastruncheck_cron {
- include puppet::puppetmaster::checklastrun
- } else {
- include puppet::puppetmaster::checklastrun::disable
- }
-
- if $puppetmaster_mode == 'passenger' {
- include puppet::puppetmaster::passenger
- } elsif $puppetmaster_mode == 'cluster' {
- include puppet::puppetmaster::cluster
- }
-
- case $puppetmaster_cleanup_reports {
- '': { $puppetmaster_cleanup_reports = '30' }
- }
-
- if $puppetmaster_cleanup_reports {
- include puppet::puppetmaster::cleanup_reports
- } else {
- include puppet::puppetmaster::cleanup_reports::disable
- }
-
- if $use_shorewall {
- include shorewall::rules::puppet::master
- }
-
- if $use_munin {
- include puppet::puppetmaster::munin
- }
-}
diff --git a/manifests/puppetmaster/base.pp b/manifests/puppetmaster/base.pp
deleted file mode 100644
index 25709ea..0000000
--- a/manifests/puppetmaster/base.pp
+++ /dev/null
@@ -1,38 +0,0 @@
-class puppet::puppetmaster::base inherits puppet::base {
-
- File[puppet_config]{
- source => [ "puppet:///modules/site-puppet/master/puppet.conf",
- "puppet:///modules/puppet/master/puppet.conf" ],
- }
-
- if !$puppet_fileserverconfig { $puppet_fileserverconfig = '/etc/puppet/fileserver.conf' }
-
- file { "$puppet_fileserverconfig":
- source => [ "puppet:///modules/site-puppet/master/${fqdn}/fileserver.conf",
- "puppet:///modules/site-puppet/master/fileserver.conf",
- "puppet:///modules/puppet/master/fileserver.conf" ],
- owner => root, group => puppet, mode => 640;
- }
-
- if $puppetmaster_storeconfigs {
- include puppet::puppetmaster::storeconfigs
- }
-
-
- if $puppetmaster_mode == 'passenger' {
- include puppet::puppetmaster::passenger
- File[$puppet_fileserverconfig]{
- notify => Exec['notify_passenger_puppetmaster'],
- }
- File[puppet_config]{
- notify => Exec['notify_passenger_puppetmaster'],
- }
- } else {
- File[$puppet_fileserverconfig]{
- notify => Service[puppetmaster],
- }
- File[puppet_config]{
- notify => Service[puppetmaster],
- }
- }
-}
diff --git a/manifests/puppetmaster/centos.pp b/manifests/puppetmaster/centos.pp
deleted file mode 100644
index 2673a4d..0000000
--- a/manifests/puppetmaster/centos.pp
+++ /dev/null
@@ -1,12 +0,0 @@
-# manifests/puppetmaster/centos.pp
-class puppet::puppetmaster::centos inherits puppet::puppetmaster::package {
-
- file { '/etc/sysconfig/puppetmaster':
- source => [ "puppet:///modules/site-puppet/sysconfig/${fqdn}/puppetmaster",
- "puppet:///modules/site-puppet/sysconfig/${domain}/puppetmaster",
- "puppet:///modules/site-puppet/sysconfig/puppetmaster",
- "puppet:///modules/puppet/sysconfig/puppetmaster" ],
- notify => Service[puppetmaster],
- owner => root, group => 0, mode => 0644;
- }
-}
diff --git a/manifests/puppetmaster/cleanup_reports.pp b/manifests/puppetmaster/cleanup_reports.pp
deleted file mode 100644
index 005a4d7..0000000
--- a/manifests/puppetmaster/cleanup_reports.pp
+++ /dev/null
@@ -1,8 +0,0 @@
-class puppet::puppetmaster::cleanup_reports {
- case $puppetmaster_reports_dir { '',undef: { $puppetmaster_reports_dir = '/var/lib/puppet/reports' } }
- # clean up reports older than $puppetmaster_cleanup_reports days
- file { '/etc/cron.daily/puppet_reports_cleanup.sh':
- content => "#!/bin/bash\nfind ${puppetmaster_reports_dir} -maxdepth 2 -type f -ctime +${puppetmaster_cleanup_reports} -exec rm {} \\;\n",
- owner => root, group => 0, mode => 0700;
- }
-}
diff --git a/manifests/puppetmaster/cleanup_reports/disable.pp b/manifests/puppetmaster/cleanup_reports/disable.pp
deleted file mode 100644
index 8636223..0000000
--- a/manifests/puppetmaster/cleanup_reports/disable.pp
+++ /dev/null
@@ -1,6 +0,0 @@
-class puppet::puppetmaster::cleanup_reports::disable inherits puppet::puppetmaster::cleanup_reports {
-
- File['/etc/cron.daily/puppet_reports_cleanup.sh']{
- ensure => absent,
- }
-}
diff --git a/manifests/puppetmaster/cluster.pp b/manifests/puppetmaster/cluster.pp
deleted file mode 100644
index 8d635ab..0000000
--- a/manifests/puppetmaster/cluster.pp
+++ /dev/null
@@ -1,5 +0,0 @@
-class puppet::puppetmaster::cluster inherits puppet::puppetmaster {
-
- include puppet::puppetmaster::cluster::base
-
-}
diff --git a/manifests/puppetmaster/debian.pp b/manifests/puppetmaster/debian.pp
deleted file mode 100644
index 8cee0ea..0000000
--- a/manifests/puppetmaster/debian.pp
+++ /dev/null
@@ -1,19 +0,0 @@
-class puppet::puppetmaster::debian inherits puppet::puppetmaster::package {
-
- if $puppetmaster_mode != 'passenger' {
- case $lsbdistcodename {
- squeeze,sid: {
- Service['puppetmaster'] { hasstatus => true, hasrestart => true }
- }
- }
- }
-
- file { '/etc/default/puppetmaster':
- source => [ "puppet:///modules/site-puppet/master/debian/${fqdn}/puppetmaster",
- "puppet:///modules/site-puppet/master/debian/${domain}/puppetmaster",
- "puppet:///modules/site-puppet/master/debian/puppetmaster",
- "puppet:///modules/puppet/master/debian/puppetmaster" ],
- notify => Service[puppetmaster],
- owner => root, group => 0, mode => 0644;
- }
-}
diff --git a/manifests/puppetmaster/hasdb.pp b/manifests/puppetmaster/hasdb.pp
deleted file mode 100644
index 2aca0e6..0000000
--- a/manifests/puppetmaster/hasdb.pp
+++ /dev/null
@@ -1,17 +0,0 @@
-define puppet::puppetmaster::hasdb (
- $dbtype = 'mysql',
- $dbname = 'puppet',
- $dbhost = 'localhost',
- # this is needed due to the collection of the databases
- $dbhostfqdn = "${fqdn}",
- $dbuser = 'puppet',
- $dbpwd = $puppet_storeconfig_password,
- $dbconnectinghost = 'locahost' )
-{
-
- if !$puppet_storeconfig_password { fail("No \$puppet_storeconfig_password is set, please set it in your manifests or site.pp to add a password") }
-
- case $dbtype {
- 'mysql': { puppet::puppetmaster::hasdb::mysql{$name: dbname => $dbname, dbhost => $dbhost, dbuser => $dbuser, dbpwd => $dbpwd, } }
- }
-}
diff --git a/manifests/puppetmaster/package.pp b/manifests/puppetmaster/package.pp
deleted file mode 100644
index 145792e..0000000
--- a/manifests/puppetmaster/package.pp
+++ /dev/null
@@ -1,9 +0,0 @@
-# manifests/puppetmaster/package.pp
-
-class puppet::puppetmaster::package inherits puppet::puppetmaster::linux {
- case $operatingsystem {
- centos: { include puppet::puppetmaster::package::centos }
- debian: { include puppet::puppetmaster::package::debian }
- default: { include puppet::puppetmaster::package::base }
- }
-}
diff --git a/manifests/puppetmaster/package/base.pp b/manifests/puppetmaster/package/base.pp
deleted file mode 100644
index 363f827..0000000
--- a/manifests/puppetmaster/package/base.pp
+++ /dev/null
@@ -1,10 +0,0 @@
-class puppet::puppetmaster::package::base inherits puppet::puppetmaster::package {
-
- package { 'puppetmaster':
- ensure => present,
- }
-
- Service['puppetmaster']{
- require +> Package['puppetmaster'],
- }
-}