This repository has been archived on 2025-03-16. You can view files and clone it, but cannot push or open issues or pull requests.
Files
puppet/manifests/agent.pp
2016-07-14 11:08:54 +02:00

113 lines
2.3 KiB
Puppet

class puppet::agent (
$ensure = 'present',
$version = undef,
$norunifloggedin = false,
$daemonize = true,
$run_hour = '*/1',
$run_minute = '10',
$run_if_ipmatch = undef,
$puppet_master = undef,
$splay = true,
$cron = true,
$environment = gsub($::domain, '.(maketank.net|bitwig.com|lan)$', '')) {
include puppet::common
case $::kernel {
'Linux' : {
$puppetpkgs = ['puppet-agent']
Package {
provider => 'apt' }
}
default : {
$puppetpkgs = 'puppet'
}
}
$pkg_ens = $ensure ? {
'present' => $::kernel ? {
'Linux' => $version,
default => $ensure,
},
default => $ensure,
}
package { $puppetpkgs:
ensure => $pkg_ens,
notify => Service['puppet'],
}
service { 'puppet':
hasstatus => true,
enable => $daemonize,
ensure => $daemonize,
}
$cron_real = $daemonize ? {
false => $cron ? {
true => 'present',
default => 'absent',
},
true => 'absent',
default => $ensure,
}
if $daemonize == true {
common::replace { '/etc/default/puppet':
pattern => 'START=no',
replacement => "START=yes"
}
} else {
common::replace { '/etc/default/puppet':
pattern => 'START=yes',
replacement => "START=no"
}
}
cron { 'puppetrun':
command => '/usr/local/sbin/puppetd_run.sh',
user => 'root',
minute => $run_minute,
hour => $run_hour,
ensure => $cron_real,
}
file {
'/usr/local/sbin/puppetd_run.sh':
content => template('puppet/puppetd_run.sh.erb'),
mode => '0700',
alias => 'puppetd_run.sh',
ensure => $ensure;
'/var/log/puppet':
mode => '0750',
owner => 'puppet',
group => 'puppet';
}
# #settings
if $ensure != 'absent' {
Ini_setting {
path => '/etc/puppetlabs/puppet/puppet.conf',
section => 'agent',
}
ini_setting { 'puppet-agent-splay':
setting => 'splay',
value => $splay;
}
ini_setting { 'puppet-agent-env':
setting => 'environment',
value => $environment;
}
if $puppet_master != undef {
ini_setting { 'puppet-agnt-master':
setting => 'server',
value => $puppet_master,
}
}
}
}