some refactoring, externalizing classes

This commit is contained in:
do
2013-05-05 21:06:45 +02:00
parent aaea443943
commit fb837f76a9
7 changed files with 130 additions and 93 deletions

14
manifests/common.pp Normal file
View File

@@ -0,0 +1,14 @@
class puppet::common ($ensure = 'present') {
package { 'facter':
ensure => $ensure ? {
'present' => 'latest',
default => $ensure,
}
}
# add facter variable to custom facts.
file { "/etc/profile.d/puppet.sh":
content => "export FACTERLIB=\"${factpath}\"\n",
ensure => $ensure,
}
}

View File

@@ -1,4 +1,8 @@
# $Id: init.pp 4425 2011-06-17 11:42:17Z uwaechte $
@@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,
@@ -13,6 +17,13 @@ class 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"]
@@ -38,8 +49,6 @@ class puppet (
notify => Service["${puppet_service}"],
}
package { ["facter"]: ensure => "${ensure}", }
service { "${puppet_service}":
hasstatus => true,
enable => "${daemonize}",
@@ -50,7 +59,8 @@ class puppet (
true => "absent",
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:
command => "/usr/local/sbin/puppetd_run.sh",
@@ -75,7 +85,8 @@ class puppet (
before => Service["${puppet_service}"],
}
file { "/opt/local/lib/ruby/site_ruby/1.8/puppet/provider/package/appdmg.rb": ensure => "absent", }
file { "/opt/local/lib/ruby/site_ruby/1.8/puppet/provider/package/appdmg.rb"
: ensure => "absent", }
}
"Linux" : {
replace { "enable_puppet":
@@ -118,84 +129,4 @@ class puppet (
# require => [ Package["puppet"] ],
}
# add facter variable to custom facts.
file { "/etc/profile.d/puppet.sh":
content => "export FACTERLIB=\"${factpath}\"\n",
ensure => $ensure,
}
}
@@puppet::puppetmaster::privatedir { $fqdn: l_fqdn => generate('/usr/bin/env', 'perl', '-e', '$_=shift;tr/[A-Z]/[a-z]/;print $_',
"$fqdn") }
class puppet::puppet-dashboard ($ensure = "present") {
package { ["libjson-ruby", "puppet-dashboard"]:
ensure => $ensure,
require => Apt::Repository["puppet-dashboard"],
}
apt::repository { "puppet-dashboard":
key => "8347A27F",
repository => "deb http://apt.puppetlabs.com ${lsbdistcodename} main\n",
ensure => $ensure,
}
cron { "purge-reports":
command => "cd /usr/share/puppet-dashboard && rake RAILS_ENV=production reports:prune upto=14 unit=day",
user => "www-data",
hour => "23",
minute => "2",
monthday => "*/14",
ensure => $ensure,
}
cron { "purge-optimizedb":
command => "cd /usr/share/puppet-dashboard && rake RAILS_ENV=production db:raw:optimize",
user => "www-data",
hour => "23",
minute => "20",
monthday => "*/10",
ensure => $ensure,
}
}
class puppet::puppetmaster ($ensure = "present", $puppetqd = false) {
if $puppetqd {
class { "activemq": ensure => $ensure }
package { "libnet-arp-perl": ensure => $ensure }
service { "stompserver":
ensure => false,
enable => false,
before => Class["activemq"],
}
service { "puppetqd":
ensure => running,
pattern => "puppet queue queue",
enable => true,
}
}
Ganglia::Gmetric::Cron {
source => "puppet/ganglia",
ensure => "${ensure}",
}
ganglia::gmetric::cron { "puppetmaster.rb": runwhen => "5", }
ganglia::gmetric::cron { "puppetmaster_compiletime.rb": runwhen => "60", }
# ## remove disk reports from time to time
tidy { "${puppet_vardir}/reports":
age => "1d",
recurse => true,
backup => false,
}
# create [private] directories
# file { $puppet_privdir: ensure => directory }
# Puppet::Puppetmaster::Privatedir <<| |>>
}
import "defines/*.pp"
}

View File

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

View File

@@ -0,0 +1,8 @@
class puppet::puppetlabs_apt ($ensure = 'present') {
apt::source { 'puppetlabs':
key => '4BD6EC30',
location => 'http://apt.puppetlabs.com',
repos => 'main',
ensure => $ensure,
}
}

48
manifests/puppetmaster.pp Normal file
View File

@@ -0,0 +1,48 @@
class puppet::puppetmaster ($ensure = "present", $puppetqd = false) {
require 'puppet::common'
if !defined(Class['puppet::puppetlabs_apt']) {
class { 'puppet::puppetlabs_apt': }
require 'puppet::puppetlabs_apt'
}
if $puppetqd {
class { "activemq": ensure => $ensure }
package { "libnet-arp-perl": ensure => $ensure }
service { "stompserver":
ensure => false,
enable => false,
before => Class["activemq"],
}
service { "puppetqd":
ensure => running,
pattern => "puppet queue queue",
enable => true,
}
}
if defined(Class['ganglia']) {
Ganglia::Gmetric::Cron {
source => "puppet/ganglia",
ensure => "${ensure}",
}
ganglia::gmetric::cron { "puppetmaster.rb": runwhen => "5", }
ganglia::gmetric::cron { "puppetmaster_compiletime.rb": runwhen => "60", }
}
# ## remove disk reports from time to time
tidy { "${puppet_vardir}/reports":
age => "1d",
recurse => true,
backup => false,
}
# create [private] directories
# file { $puppet_privdir: ensure => directory }
# Puppet::Puppetmaster::Privatedir <<| |>>
}