This commit is contained in:
2014-05-26 13:32:38 +02:00
8 changed files with 89 additions and 70 deletions

21
manifests/client.pp Normal file
View File

@@ -0,0 +1,21 @@
class puppet::client (
$ensure = 'present',
$version = $::PUPPET_VERSION) {
class { 'puppet':
daemonize => false,
require => Exec['apt_update'],
}
if !defined(Class['puppet::puppetlabs_apt']) {
class { 'puppet::puppetlabs_apt': }
require 'puppet::puppetlabs_apt'
}
apt::pin { 'puppet':
version => $version,
packages => 'puppet*',
priority => '100',
}
}

View File

@@ -1,11 +1,11 @@
define puppet::defines::fact_d ($value, $ensure = 'present', $key = false) {
require 'puppet::common'
require 'puppet::facter'
$k_real = $key ? {
false => $name,
default => $key,
}
file { "${puppet::common::facts_d}/${k_real}.txt":
file { "${puppet::facter::facts_d}/${k_real}.txt":
ensure => $ensure,
content => "${k_real}=${value}",
}

View File

@@ -1,11 +1,11 @@
class puppet::common (
class puppet::facter (
$ensure = 'present') {
$pkg_ens = $ensure ? {
'present' => 'latest',
default => $ensure,
}
package { 'facter': ensure => '1.7.5-1puppetlabs1' }
package { 'facter': ensure => $ensure }
package { 'libaugeas-ruby': }
$ens_dir = $ensure ? {

View File

@@ -1,4 +1,4 @@
import 'defines/*.pp'
#import 'defines/*.pp'
class puppet (
$ensure = 'present',
@@ -16,7 +16,7 @@ class puppet (
}
$factpath = '/var/lib/puppet/lib/facter'
require 'puppet::common'
require 'puppet::facter'
if !defined(Class['puppet::puppetlabs_apt']) {
require 'puppet::puppetlabs_apt'
@@ -111,31 +111,20 @@ class puppet (
},
}
}
# if defined(Class['ganglia::monitor']) {
# Ganglia::Gmetric::Cron {
# source => 'puppet/ganglia',
# ensure => $ensure,
# }
#
# ganglia::gmetric::cron { 'puppetd_lastrun.sh': runwhen => '5'; 'puppetd_runtime.sh': runwhen => '15'; }
#
# }
}
}
$puppet_user = $operatingsystem ? {
$puppet_user = $::operatingsystem ? {
'Darwin' => $adm,
default => 'puppet',
}
$puppet_group = $operatingsystem ? {
$puppet_group = $::operatingsystem ? {
'Darwin' => 'wheel',
default => 'puppet',
}
# 'FreeBSD' => '/usr/local/etc/puppet/puppet.conf',
$puppetconf = $operatingsystem ? {
$puppetconf = $::operatingsystem ? {
default => '/etc/puppet/puppet.conf',
}
file { $puppetconf:
ensure => $ensure,
content => template('puppet/puppet.conf.erb'),
@@ -144,4 +133,4 @@ class puppet (
# require => [ Package["puppet"] ],
}
}
}

View File

@@ -0,0 +1,20 @@
class puppet::monitored::client (
$ensure = 'present') {
$check = '/usr/lib/nagios/plugins/check_file_age -w10800 -c36000 -f/var/lib/puppet/state/last_run_summary.yaml'
icinga::object::hostgroupmember { 'puppet-clients': ensure => 'absent', }
sudo::conf { 'puppet-clients-icinga-sudo':
content => "nagios ALL=NOPASSWD: ${check}",
ensure => $ensure,
}
massive_passive::icinga::service { 'Puppet last run':
freshness_threshold => '5800',
command => "/usr/bin/sudo ${check}",
use => 'workhours-passive-service',
hostgroup_name => 'linux-servers',
notifications_enabled => 1,
ensure => $ensure,
}
}

View File

@@ -1,5 +1,5 @@
class puppet::puppet-dashboard ($ensure = 'present') {
require 'puppet::common'
require 'puppet::facter'
package { ['libjson-ruby', 'puppet-dashboard']:
ensure => $ensure,

View File

@@ -1,49 +1,35 @@
class puppet::puppetmaster (
$ensure = 'present',
$puppetqd = false) {
require 'puppet::common'
$ensure = 'present',
$dns_alt_names = undef,
$storeconfigs = false,
$storeconfigs_backend = undef,
$reports = undef,
$modulepath = undef) {
require 'puppet::facter'
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'],
if defined(Class['ganglia::monitor']) {
Ganglia::Gmetric::Cron {
source => 'puppet/ganglia',
ensure => $ensure,
}
service { 'puppetqd':
ensure => running,
pattern => 'puppet queue queue',
enable => true,
ganglia::gmetric::cron {
'puppetmaster.rb':
runwhen => '5';
'puppetmaster_compiletime.rb':
runwhen => '60',
}
}
# if defined(Class['ganglia::monitor']) {
# Ganglia::Gmetric::Cron {
# source => 'puppet/ganglia',
# ensure => $ensure,
# }
#
# ganglia::gmetric::cron {
# 'puppetmaster.rb':
# runwhen => '5';
#
# 'puppetmaster_compiletime.rb':
# runwhen => '60',
# }
# }
# ## remove disk reports from time to time
tidy { "${::puppet_vardir}/reports":
age => '1d',
age => '1m',
recurse => true,
backup => false,
}

View File

@@ -10,30 +10,33 @@ rundir=/var/run/puppet
factsignore = .svn CVS .git
pluginsync=true
factpath=$vardir/lib/facter
templatedir=/etc/puppet/templates
## should we use this?
#prerun_command=/etc/puppet/etckeeper-commit-pre
#postrun_command=/etc/puppet/etckeeper-commit-post
<% if (fqdn == scope.lookupvar("puppetmaster_server")) || (fqdn == scope.lookupvar("puppetmasterdev_server")) -%>
dbmigrate=true
dbadapter=<%= scope.lookupvar('puppetmaster_dbtype') %>
dbname=<%= scope.lookupvar('puppetmaster_dbname') %>
dbserver=<%= scope.lookupvar('puppetmaster_dbhost') %>
dbuser=<%= scope.lookupvar('puppetmaster_dbuser') %>
dbpassword=<%= scope.lookupvar('puppetmaster_dbpassword') %>
#dbmigrate=true
#dbadapter=<%= scope.lookupvar('puppetmaster_dbtype') %>
#dbname=<%= scope.lookupvar('puppetmaster_dbname') %>
#dbserver=<%= scope.lookupvar('puppetmaster_dbhost') %>
#dbuser=<%= scope.lookupvar('puppetmaster_dbuser') %>
#dbpassword=<%= scope.lookupvar('puppetmaster_dbpassword') %>
[master]
ssl_client_header = SSL_CLIENT_S_DN
ssl_client_verify_header = SSL_CLIENT_VERIFY
reports=<%= scope.lookupvar('puppetmaster_reports') %>
<% if scope.lookupvar('puppet::puppetmaster::dns_alt_names') -%>
dns_alt_names=<%= scope.lookupvar('puppet::puppetmaster::dns_alt_names') %>
<% end -%>
<% if @reports -%>
reports=<%= @reports %>
<% end -%>
<% if scope.lookupvar('puppetmaster_reporturl') != false -%>
reporturl=<%= scope.lookupvar('puppetmaster_reporturl') %>
<% end -%>
modulepath=<%= scope.lookupvar('puppetmaster_modulepath') %>
storeconfigs=true
rails_loglevel=info
modulepath=<%= scope['puppet::puppetmaster::modulepath'] %>
storeconfigs=<%= scope['puppet::puppetmaster::storeconfigs'] %>
<% if scope['puppet::puppetmaster::storeconfigs_backend'] -%>
storeconfigs_backend=<%= scope['puppet::puppetmaster::storeconfigs_backend'] %>
<% end -%>
#rails_loglevel=info
<% end -%>
[agent]