diff options
Diffstat (limited to 'manifests')
-rw-r--r-- | manifests/agent.pp | 3 | ||||
-rw-r--r-- | manifests/agent/config.pp | 46 | ||||
-rw-r--r-- | manifests/agent/generate_sshkey.pp | 4 | ||||
-rw-r--r-- | manifests/agent/install.pp | 10 | ||||
-rw-r--r-- | manifests/agent/install_local.pp | 12 | ||||
-rw-r--r-- | manifests/agent/register.pp | 9 | ||||
-rw-r--r-- | manifests/host.pp | 2 | ||||
-rw-r--r-- | manifests/install.pp | 10 | ||||
-rw-r--r-- | manifests/server/configure_ssh.pp | 1 |
9 files changed, 67 insertions, 30 deletions
diff --git a/manifests/agent.pp b/manifests/agent.pp index c455bd5..64109ae 100644 --- a/manifests/agent.pp +++ b/manifests/agent.pp @@ -17,6 +17,7 @@ class check_mk::agent ( $generate_sshkey = false, $sshuser = undef, $use_ssh_tag = 'ssh', + $hostname = $::fqdn, $register_agent = true ) { @@ -56,12 +57,14 @@ class check_mk::agent ( method => $method, generate_sshkey => $generate_sshkey, sshuser => $sshuser, + hostname => $hostname, require => Class['check_mk::agent::install'], } if ( $register_agent ) { class { 'check_mk::agent::register': host_tags => $tags, + hostname => $hostname, } } } diff --git a/manifests/agent/config.pp b/manifests/agent/config.pp index 36f2910..8ee5f18 100644 --- a/manifests/agent/config.pp +++ b/manifests/agent/config.pp @@ -9,39 +9,42 @@ class check_mk::agent::config ( $user, $method = 'xinetd', $generate_sshkey = false, - $sshuser = undef + $sshuser = undef, + $hostname = $::fqdn ) { if $use_cache { $server = "${server_dir}/check_mk_caching_agent" - } - else { + } else { $server = "${server_dir}/check_mk_agent" } + case $method { 'xinetd': { - if $ip_whitelist { - $only_from = join($ip_whitelist, ' ') - } - else { - $only_from = undef - } - file { '/etc/xinetd.d/check_mk': - ensure => present, - owner => 'root', - group => 'root', - mode => '0444', - content => template('check_mk/agent/check_mk.erb'), - require => Package['check_mk-agent','check_mk-agent-logwatch'], - notify => Class['check_mk::agent::service'], - } + if $ip_whitelist { + $only_from = join($ip_whitelist, ' ') + } else { + $only_from = undef + } + + file { '/etc/xinetd.d/check_mk': + ensure => present, + owner => 'root', + group => 'root', + mode => '0444', + content => template('check_mk/agent/check_mk.erb'), + require => Package['check_mk-agent','check_mk-agent-logwatch'], + notify => Class['check_mk::agent::service'], + } } - 'ssh' : { + + 'ssh': { if $generate_sshkey { - check_mk::agent::generate_sshkey { "check_mk_key_${::fqdn}": + check_mk::agent::generate_sshkey { "check_mk_key_${hostname}": keydir => $keydir, authdir => $authdir, authfile => $authfile, - sshuser => $sshuser + sshuser => $sshuser, + hostname => $hostname } } @@ -50,6 +53,7 @@ class check_mk::agent::config ( ensure => absent; } } + default : {} } } diff --git a/manifests/agent/generate_sshkey.pp b/manifests/agent/generate_sshkey.pp index d2d1d39..b00271f 100644 --- a/manifests/agent/generate_sshkey.pp +++ b/manifests/agent/generate_sshkey.pp @@ -15,11 +15,12 @@ define check_mk::agent::generate_sshkey ( $ssh_key_basepath = '/etc/puppet/modules/check_mk/keys', # user on the client the check_mk server will ssh to, to run the agent $sshuser = 'root', + $hostname = $::fqdn, $check_mk_tag = 'check_mk_sshkey' ){ # generate check-mk ssh keypair, stored on puppetmaster - $ssh_key_name = "${::fqdn}_id_rsa" + $ssh_key_name = "${hostname}_id_rsa" $ssh_keys = ssh_keygen("${ssh_key_basepath}/${ssh_key_name}") $public = split($ssh_keys[1],' ') $public_type = $public[0] @@ -46,6 +47,7 @@ define check_mk::agent::generate_sshkey ( target => "${authdir}/${authfile}", override_builtin => true, options => "command=\"${command}\""; + } } else { # otherwise use the defaults sshd::ssh_authorized_key { $ssh_key_name: diff --git a/manifests/agent/install.pp b/manifests/agent/install.pp index 7225b20..5c0b56e 100644 --- a/manifests/agent/install.pp +++ b/manifests/agent/install.pp @@ -50,13 +50,19 @@ class check_mk::agent::install ( } } else { + if $version { + $agent_package_version = $version + } else { + $agent_package_version = latest + } + package { 'check_mk-agent': - ensure => latest, + ensure => $agent_package_version, name => $agent_package_name, require => $require_method, } package { 'check_mk-agent-logwatch': - ensure => latest, + ensure => $agent_package_version, name => $agent_logwatch_package_name, require => Package['check_mk-agent'], } diff --git a/manifests/agent/install_local.pp b/manifests/agent/install_local.pp new file mode 100644 index 0000000..7238440 --- /dev/null +++ b/manifests/agent/install_local.pp @@ -0,0 +1,12 @@ +define check_mk::agent::install_local($source=undef, $content=undef, $ensure='present') { + @file { "/usr/lib/check_mk_agent/local/${name}" : + ensure => $ensure, + owner => 'root', + group => 'root', + mode => '0755', + content => $content, + source => $source, + tag => 'check_mk::local', + require => Package['check-mk-agent'], + } +} diff --git a/manifests/agent/register.pp b/manifests/agent/register.pp index 9d12fc7..46cdeae 100644 --- a/manifests/agent/register.pp +++ b/manifests/agent/register.pp @@ -1,7 +1,8 @@ -class check_mk::agent::register ($host_tags = '') { - @@check_mk::host { $::fqdn: +class check_mk::agent::register ( + $host_tags = '', + $hostname = $::fqdn +) { + @@check_mk::host { $hostname: host_tags => $host_tags, } - - } diff --git a/manifests/host.pp b/manifests/host.pp index 4e8d146..49f038b 100644 --- a/manifests/host.pp +++ b/manifests/host.pp @@ -4,7 +4,7 @@ define check_mk::host ( ) { $host = $title if size($host_tags) > 0 { - $taglist = join($host_tags,'|') + $taglist = join(any2array($host_tags),'|') $entry = "${host}|${taglist}" } else { diff --git a/manifests/install.pp b/manifests/install.pp index bb32146..5f8a4a0 100644 --- a/manifests/install.pp +++ b/manifests/install.pp @@ -1,5 +1,6 @@ class check_mk::install ( $filestore = '', + $version = '', $package, $site, $workspace, @@ -29,8 +30,15 @@ class check_mk::install ( } else { $package_name = $package + + if $version { + $server_package_version = $version + } else { + $server_package_version = latest + } + package { $package_name: - ensure => installed, + ensure => $server_package_version, } } $etc_dir = "/omd/sites/${site}/etc" diff --git a/manifests/server/configure_ssh.pp b/manifests/server/configure_ssh.pp index 5d4de74..987cc7a 100644 --- a/manifests/server/configure_ssh.pp +++ b/manifests/server/configure_ssh.pp @@ -10,6 +10,7 @@ class check_mk::server::configure_ssh ( 'puppet:///modules/check_mk/use_ssh.mk' ], owner => $::check_mk::shelluser, group => $::check_mk::shellgroup, + mode => '0644', notify => Exec['check_mk-refresh'] } } |