diff options
author | varac <varacanero@zeromail.org> | 2014-02-04 17:55:09 +0100 |
---|---|---|
committer | varac <varacanero@zeromail.org> | 2014-02-05 16:54:54 +0100 |
commit | b449ad813d8c9672d23393ca30bbfd3dc1dd7fe3 (patch) | |
tree | 78b94d9f3f0d92f63422edb57f2dec5c85adfff4 | |
parent | 4cd47d03c68d8530dcbff37c5bc1cf6a8006d767 (diff) |
don't install xinetd by default, restructed agent use of ssh
-rw-r--r-- | README.md | 6 | ||||
-rw-r--r-- | manifests/agent.pp | 41 | ||||
-rw-r--r-- | manifests/agent/config.pp | 43 | ||||
-rw-r--r-- | manifests/agent/install.pp | 19 |
4 files changed, 65 insertions, 44 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 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, |