diff options
| author | varac <varacanero@zeromail.org> | 2014-10-08 23:38:08 +0200 | 
|---|---|---|
| committer | varac <varacanero@zeromail.org> | 2014-10-08 23:38:08 +0200 | 
| commit | 7b463790a4e6c207cc99a4db6cfea872b74d75b0 (patch) | |
| tree | 721ff7fecfc710c0f750037d8fac663ee94869ca | |
| parent | 7bc79e68e5ca913d1d2843c48cde8f946feed09c (diff) | |
| parent | 36a1332f5f6e43591a47b89ec505541f84381667 (diff) | |
Merge branch '5216_nagios_hostgroups' into develop
| -rw-r--r-- | provider_base/services/monitor.json | 1 | ||||
| -rw-r--r-- | puppet/modules/site_check_mk/manifests/server.pp | 13 | ||||
| -rw-r--r-- | puppet/modules/site_check_mk/templates/hostgroups.mk | 4 | ||||
| -rw-r--r-- | puppet/modules/site_nagios/manifests/server.pp | 17 | ||||
| -rw-r--r-- | puppet/modules/site_nagios/manifests/server/hostgroup.pp | 3 | 
5 files changed, 30 insertions, 8 deletions
| diff --git a/provider_base/services/monitor.json b/provider_base/services/monitor.json index c24724bf..56ca015b 100644 --- a/provider_base/services/monitor.json +++ b/provider_base/services/monitor.json @@ -1,6 +1,7 @@  {    "nagios": {      "nagiosadmin_pw": "= secret :nagios_admin_password", +    "domains_internal": "= global.tags.field('domain.internal_suffix').compact.uniq",      "hosts": "= (self.environment == 'local' ? nodes_like_me : nodes[:environment => '!local']).pick_fields('domain.internal', 'domain.full_suffix', 'ip_address', 'services', 'openvpn.gateway_address', 'ssh.port')"    },    "hosts": "= self.environment == 'local' ? hosts_file(nodes_like_me) : hosts_file(nodes[:environment => '!local'])", diff --git a/puppet/modules/site_check_mk/manifests/server.pp b/puppet/modules/site_check_mk/manifests/server.pp index e544ef0d..aa24d96c 100644 --- a/puppet/modules/site_check_mk/manifests/server.pp +++ b/puppet/modules/site_check_mk/manifests/server.pp @@ -5,11 +5,12 @@ class site_check_mk::server {    $type     = $ssh_hash['authorized_keys']['monitor']['type']    $seckey   = $ssh_hash['monitor']['private_key'] -  $nagios_hiera   = hiera_hash('nagios') -  $nagios_hosts   = $nagios_hiera['hosts'] +  $nagios_hiera     = hiera_hash('nagios') +  $nagios_hosts     = $nagios_hiera['hosts'] -  $hosts          = hiera_hash('hosts') -  $all_hosts      = inline_template ('<% @hosts.keys.sort.each do |key| -%>"<%= @hosts[key]["domain_internal"] %>", <% end -%>') +  $hosts            = hiera_hash('hosts') +  $all_hosts        = inline_template ('<% @hosts.keys.sort.each do |key| -%>"<%= @hosts[key]["domain_internal"] %>", <% end -%>') +  $domains_internal = $nagios_hiera['domains_internal']    package { 'check-mk-server':      ensure => installed, @@ -35,6 +36,10 @@ class site_check_mk::server {        content => template('site_check_mk/use_ssh.mk'),        notify  => Exec['check_mk-refresh'],        require => Package['check-mk-server']; +    '/etc/check_mk/conf.d/hostgroups.mk': +      content => template('site_check_mk/hostgroups.mk'), +      notify  => Exec['check_mk-refresh'], +      require => Package['check-mk-server'];      '/etc/check_mk/all_hosts_static':        content => $all_hosts,        notify  => Exec['check_mk-refresh'], diff --git a/puppet/modules/site_check_mk/templates/hostgroups.mk b/puppet/modules/site_check_mk/templates/hostgroups.mk new file mode 100644 index 00000000..79b7f92f --- /dev/null +++ b/puppet/modules/site_check_mk/templates/hostgroups.mk @@ -0,0 +1,4 @@ +host_groups = [ +  <% @domains_internal.each do |domain| %>( '<%= domain %>', [<% @nagios_hosts.keys.sort.each do |key| -%><% if @nagios_hosts[key]['domain_internal'] == key+'.'+domain -%>'<%= key %>.<%= domain %>', <% end -%><% end -%>] ), +  <% end -%> +] diff --git a/puppet/modules/site_nagios/manifests/server.pp b/puppet/modules/site_nagios/manifests/server.pp index 85443917..b195c880 100644 --- a/puppet/modules/site_nagios/manifests/server.pp +++ b/puppet/modules/site_nagios/manifests/server.pp @@ -3,12 +3,19 @@ class site_nagios::server inherits nagios::base {    # First, purge old nagios config (see #1467)    class { 'site_nagios::server::purge': } -  $nagios_hiera   = hiera('nagios') -  $nagiosadmin_pw = htpasswd_sha1($nagios_hiera['nagiosadmin_pw']) -  $nagios_hosts   = $nagios_hiera['hosts'] +  $nagios_hiera     = hiera('nagios') +  $nagiosadmin_pw   = htpasswd_sha1($nagios_hiera['nagiosadmin_pw']) +  $nagios_hosts     = $nagios_hiera['hosts'] +  $domains_internal = $nagios_hiera['domains_internal'] -  include nagios::defaults    include nagios::base +  include nagios::defaults::commands +  include nagios::defaults::contactgroups +  include nagios::defaults::contacts +  include nagios::defaults::templates +  include nagios::defaults::timeperiods +  include nagios::defaults::plugins +    class {'nagios':      # don't manage apache class from nagios, cause we already include      # it in site_apache::common @@ -55,4 +62,6 @@ class site_nagios::server inherits nagios::base {          'set missingok missingok', 'set ifempty notifempty',          'set copytruncate copytruncate' ]    } + +  ::site_nagios::server::hostgroup { $domains_internal: }  } diff --git a/puppet/modules/site_nagios/manifests/server/hostgroup.pp b/puppet/modules/site_nagios/manifests/server/hostgroup.pp new file mode 100644 index 00000000..035ba7d1 --- /dev/null +++ b/puppet/modules/site_nagios/manifests/server/hostgroup.pp @@ -0,0 +1,3 @@ +define site_nagios::server::hostgroup { +  nagios_hostgroup { $name: } +} | 
