summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvarac <varacanero@zeromail.org>2014-02-04 17:55:09 +0100
committervarac <varacanero@zeromail.org>2014-02-05 16:54:54 +0100
commitb449ad813d8c9672d23393ca30bbfd3dc1dd7fe3 (patch)
tree78b94d9f3f0d92f63422edb57f2dec5c85adfff4
parent4cd47d03c68d8530dcbff37c5bc1cf6a8006d767 (diff)
don't install xinetd by default, restructed agent use of ssh
-rw-r--r--README.md6
-rw-r--r--manifests/agent.pp41
-rw-r--r--manifests/agent/config.pp43
-rw-r--r--manifests/agent/install.pp19
4 files changed, 65 insertions, 44 deletions
diff --git a/README.md b/README.md
index 440b471..79710aa 100644
--- a/README.md
+++ b/README.md
@@ -140,9 +140,11 @@ Only required if a filestore is used.
*workspace*: The directory to use to store files used during installation.
Default: '/root/check_mk'
-*use_ssh*: Use ssh instead of the tcp wrapper in order to allows the server to
+*method*: "xinetd" (default) or "ssh"
+ "ssh": Use ssh instead of the tcp wrapper in order to allows the server to
execute the agent on the client.
- Default: false.
+
+*generate_sshkey*: true or false (default)
* Deploys ssh keypair on server (in /opt/omd/sites/monitoring/.ssh)
* Saves keypair on puppetmaster (/etc/puppet/modules/keys/files/check_mk_keys by default)
diff --git a/manifests/agent.pp b/manifests/agent.pp
index c6e59ad..65571ff 100644
--- a/manifests/agent.pp
+++ b/manifests/agent.pp
@@ -10,20 +10,25 @@ class check_mk::agent (
$workspace = '/root/check_mk',
$agent_package_name = 'check_mk-agent',
$agent_logwatch_package_name = 'check_mk-agent-logwatch',
- $use_ssh = false,
+ $method = 'xinetd',
+ $generate_sshkey = false,
$use_ssh_tag = 'ssh',
$register_agent = true
) {
- if ( $use_ssh == true ) {
- if ( $host_tags != '' ) {
- $tags = "${host_tags}|${use_ssh_tag}"
- } else {
- $tags = $use_ssh_tag
+ case $method {
+ 'xinetd': {
+ $tags = $host_tags
+ include check_mk::agent::service
}
- } else {
- $tags = $host_tags
- include check_mk::agent::service
+ 'ssh': {
+ if ( $host_tags != '' ) {
+ $tags = "${host_tags}|${use_ssh_tag}"
+ } else {
+ $tags = $use_ssh_tag
+ }
+ }
+ default: { }
}
class { 'check_mk::agent::install':
@@ -31,16 +36,18 @@ class check_mk::agent (
filestore => $filestore,
workspace => $workspace,
agent_package_name => $agent_package_name,
- agent_logwatch_package_name => $agent_logwatch_package_name
+ agent_logwatch_package_name => $agent_logwatch_package_name,
+ method => $method
}
class { 'check_mk::agent::config':
- ip_whitelist => $ip_whitelist,
- port => $port,
- server_dir => $server_dir,
- use_cache => $use_cache,
- user => $user,
- use_ssh => $use_ssh,
- require => Class['check_mk::agent::install'],
+ ip_whitelist => $ip_whitelist,
+ port => $port,
+ server_dir => $server_dir,
+ use_cache => $use_cache,
+ user => $user,
+ method => $method,
+ generate_sshkey => $generate_sshkey,
+ require => Class['check_mk::agent::install'],
}
if ( $register_agent ) {
diff --git a/manifests/agent/config.pp b/manifests/agent/config.pp
index 82636f5..460b2b2 100644
--- a/manifests/agent/config.pp
+++ b/manifests/agent/config.pp
@@ -4,7 +4,8 @@ class check_mk::agent::config (
$server_dir,
$use_cache,
$user,
- $use_ssh = false
+ $method = 'xinetd',
+ $generate_sshkey = false,
) {
if $use_cache {
$server = "${server_dir}/check_mk_caching_agent"
@@ -12,25 +13,29 @@ class check_mk::agent::config (
else {
$server = "${server_dir}/check_mk_agent"
}
-
- if ( $use_ssh == true ){
- check_mk::agent::generate_sshkey { 'check_mk_key': }
- } else {
-
- if $ip_whitelist {
- $only_from = join($ip_whitelist, ' ')
+ 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'],
+ }
}
- 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' : {
+ if $generate_sshkey {
+ check_mk::agent::generate_sshkey { 'check_mk_key': }
+ }
}
+ default : {}
}
}
diff --git a/manifests/agent/install.pp b/manifests/agent/install.pp
index 903a9f5..7e41a7b 100644
--- a/manifests/agent/install.pp
+++ b/manifests/agent/install.pp
@@ -4,12 +4,19 @@ class check_mk::agent::install (
$workspace,
$agent_package_name,
$agent_logwatch_package_name,
+ $method = 'xinetd',
) {
- if ! defined(Package['xinetd']) {
- package { 'xinetd':
- ensure => present,
+ if $method == 'xinetd' {
+ if ! defined($require_method) {
+ package { 'xinetd':
+ ensure => present,
+ }
}
+ $require_method = 'Package[\'xinetd\']'
+ } else {
+ $require_method = undef
}
+
if $filestore {
if ! defined(File[$workspace]) {
file { $workspace:
@@ -19,12 +26,12 @@ class check_mk::agent::install (
file { "${workspace}/check_mk-agent-${version}.noarch.rpm":
ensure => present,
source => "${filestore}/check_mk-agent-${version}.noarch.rpm",
- require => Package['xinetd'],
+ require => $require_method,
}
file { "${workspace}/check_mk-agent-logwatch-${version}.noarch.rpm":
ensure => present,
source => "${filestore}/check_mk-agent-logwatch-${version}.noarch.rpm",
- require => Package['xinetd'],
+ require => $require_method,
}
package { 'check_mk-agent':
ensure => present,
@@ -46,7 +53,7 @@ class check_mk::agent::install (
package { 'check_mk-agent':
ensure => present,
name => $agent_package_name,
- require => Package['xinetd'],
+ require => $require_method,
}
package { 'check_mk-agent-logwatch':
ensure => present,