diff options
-rw-r--r-- | README.md | 6 | ||||
-rw-r--r-- | manifests/agent.pp | 16 | ||||
-rw-r--r-- | manifests/agent/config.pp | 21 | ||||
-rw-r--r-- | manifests/agent/install.pp | 19 |
4 files changed, 42 insertions, 20 deletions
@@ -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, |