summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md6
-rw-r--r--manifests/agent.pp16
-rw-r--r--manifests/agent/config.pp21
-rw-r--r--manifests/agent/install.pp19
4 files changed, 42 insertions, 20 deletions
diff --git a/README.md b/README.md
index 6c6fb18..0f567ee 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 24f69bd..6383ab9 100644
--- a/manifests/agent.pp
+++ b/manifests/agent.pp
@@ -11,12 +11,18 @@ 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 ) {
+ case $method {
+ 'xinetd': {
+ $tags = $host_tags
+ include check_mk::agent::service
+ }
+ 'ssh': {
if ( $host_tags != '' ) {
$tags = "${host_tags}|${use_ssh_tag}"
} else {
@@ -32,7 +38,8 @@ 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,
@@ -41,7 +48,8 @@ class check_mk::agent (
homedir => $homedir,
use_cache => $use_cache,
user => $user,
- use_ssh => $use_ssh,
+ method => $method,
+ generate_sshkey => $generate_sshkey,
require => Class['check_mk::agent::install'],
}
diff --git a/manifests/agent/config.pp b/manifests/agent/config.pp
index 5b9323a..256af8f 100644
--- a/manifests/agent/config.pp
+++ b/manifests/agent/config.pp
@@ -5,7 +5,8 @@ class check_mk::agent::config (
$homedir,
$use_cache,
$user,
- $use_ssh = false
+ $method = 'xinetd',
+ $generate_sshkey = false,
) {
if $use_cache {
$server = "${server_dir}/check_mk_caching_agent"
@@ -13,13 +14,8 @@ class check_mk::agent::config (
else {
$server = "${server_dir}/check_mk_agent"
}
-
- if ( $use_ssh == true ){
- check_mk::agent::generate_sshkey { 'check_mk_key':
- homedir => $homedir
- }
- } else {
-
+ case $method {
+ 'xinetd': {
if $ip_whitelist {
$only_from = join($ip_whitelist, ' ')
}
@@ -35,5 +31,14 @@ class check_mk::agent::config (
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':
+ homedir => $homedir
+ }
+ }
+ }
+ 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,