summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvarac <varacanero@zeromail.org>2016-03-01 15:41:31 +0100
committervarac <varacanero@zeromail.org>2016-03-01 15:41:31 +0100
commita050fbb81b3b218518d079c6c83c6bcd48485340 (patch)
treeaedb887751cc45e6fc1e88532354266ba8f7abd0
parentb0c973424dfca43087636ac75f9f0674adda5d6e (diff)
parentdc9d8cca10d64ab7027f6c876a3bc89e19cf4639 (diff)
Merge remote-tracking branch 'shared/master' into leap_master
-rw-r--r--manifests/agent.pp3
-rw-r--r--manifests/agent/config.pp46
-rw-r--r--manifests/agent/generate_sshkey.pp4
-rw-r--r--manifests/agent/install.pp10
-rw-r--r--manifests/agent/install_local.pp12
-rw-r--r--manifests/agent/register.pp9
-rw-r--r--manifests/host.pp2
-rw-r--r--manifests/install.pp10
-rw-r--r--manifests/server/configure_ssh.pp1
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']
}
}