From 0f8cf13c3ea9b4a42afe72cdd96f860e270f8cd7 Mon Sep 17 00:00:00 2001 From: Arne Teuke Date: Tue, 25 Jul 2017 15:56:52 +0100 Subject: [PATCH 1/7] linked commands.pp --- manifests/nagios/objects/commands.pp | 3 ++- manifests/server/service.pp | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/manifests/nagios/objects/commands.pp b/manifests/nagios/objects/commands.pp index 9b44306..22dc856 100644 --- a/manifests/nagios/objects/commands.pp +++ b/manifests/nagios/objects/commands.pp @@ -18,7 +18,8 @@ # # You should have received a copy of the GNU General Public License # along with this program. If not, see . -# @summary Class manages all configuration files required for cd_nagios. +# @summary Class manages all commands known to NAGIOS through Puppet exports, +# and populates /etc/nagios/conf.d/nagios_commands.cfg ############################################################################## class cd_nagios::nagios::objects::commands ( diff --git a/manifests/server/service.pp b/manifests/server/service.pp index 5d8cbd2..315f7f8 100644 --- a/manifests/server/service.pp +++ b/manifests/server/service.pp @@ -28,6 +28,7 @@ class cd_nagios::server::service ( require cd_nagios::server::files require cd_nagios::server::access_rules + require cd_nagios::nagios::objects::commands service { $ng_service: ensure => running, From 633f59375b02f4b450d5e2e513d800477496f111 Mon Sep 17 00:00:00 2001 From: Arne Teuke Date: Tue, 25 Jul 2017 16:30:03 +0100 Subject: [PATCH 2/7] added and linked template_rules --- manifests/nagios/objects/commands.pp | 4 +- manifests/nagios/objects/template_rules.pp | 45 +++++ manifests/nagios/objects/templates.pp | 29 +++ manifests/params.pp | 2 +- manifests/server/service.pp | 1 + templates/nagios/templates_cfg.erb | 197 +++++++++++++++++++++ templates/nagios/templates_cfg_head.erb | 7 + 7 files changed, 282 insertions(+), 3 deletions(-) create mode 100644 manifests/nagios/objects/template_rules.pp create mode 100644 manifests/nagios/objects/templates.pp create mode 100755 templates/nagios/templates_cfg.erb create mode 100644 templates/nagios/templates_cfg_head.erb diff --git a/manifests/nagios/objects/commands.pp b/manifests/nagios/objects/commands.pp index 22dc856..ca20522 100644 --- a/manifests/nagios/objects/commands.pp +++ b/manifests/nagios/objects/commands.pp @@ -19,8 +19,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . # @summary Class manages all commands known to NAGIOS through Puppet exports, -# and populates /etc/nagios/conf.d/nagios_commands.cfg -############################################################################## +# and populates /etc/nagios/conf.d/nagios_commands.cfg. +################################################################################ class cd_nagios::nagios::objects::commands ( ) inherits cd_nagios::params { diff --git a/manifests/nagios/objects/template_rules.pp b/manifests/nagios/objects/template_rules.pp new file mode 100644 index 0000000..19bcf6c --- /dev/null +++ b/manifests/nagios/objects/template_rules.pp @@ -0,0 +1,45 @@ +## cd_nagios::nagios::objects::template_rules.pp +# Module name: cd_nagios +# Author: Arne Teuke (arne_teuke@ConfDroid.com) +# # License: +# This file is part of cd_nagios. +# +# cd_nagios is used for providing automatic configuration of Nagios +# Copyright (C) 2016 ConfDroid (copyright@ConfDroid.com) +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# @summary Class manages /etc/nagios/conf.d/templates.cfg through concat. +################################################################################ +class cd_nagios::nagios::objects::template_rules ( + +) inherits cd_nagios::params { + + if $::fqdn == $ng_nagios_server { + + # create the templates.cfg file + + concat { $ng_target_templates: + ensure => present, + path => $ng_target_templates, + owner => $ng_user, + group => $ng_user, + mode => '0640', + selrange => s0, + selrole => object_r, + aeltype => nagios_etc_t, + seluser => system_u, + content => template[$ng_templates_head_erb] + notify => Service[$ng_service], + } + } +} diff --git a/manifests/nagios/objects/templates.pp b/manifests/nagios/objects/templates.pp new file mode 100644 index 0000000..590d05c --- /dev/null +++ b/manifests/nagios/objects/templates.pp @@ -0,0 +1,29 @@ +## cd_nagios::nagios::objects::templates.pp +# Module name: cd_nagios +# Author: Arne Teuke (arne_teuke@ConfDroid.com) +# # License: +# This file is part of cd_nagios. +# +# cd_nagios is used for providing automatic configuration of Nagios +# Copyright (C) 2016 ConfDroid (copyright@ConfDroid.com) +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# @summary Define manages populates /etc/nagios/conf.d/templates.cfg. +################################################################################ +defie cd_nagios::nagios::objects::templates ( + +) { + +$ng_target_templates = $::cd_nagios::params::ng_target_templates + +} diff --git a/manifests/params.pp b/manifests/params.pp index 66327cd..95b88ee 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -959,8 +959,8 @@ $ng_certbot_check = "${ng_certbot_archive}/${ng_webserver_name}/cert1.pe $ng_certbot_live = "${ng_certbot_main_dir}/live" # nagios - $ng_target_templates = "${ng_conf_d_dir}/templates.cfg" +$ng_templates_head_erb = 'cd_nagios/nagios/templates_cfg_head.erb' $ng_target_timeperiods = "${ng_conf_d_dir}/timeperiods.cfg" $ng_target_localhost = "${ng_conf_d_dir}/nagios_localhost.cfg" $ng_target_host = "${ng_conf_d_dir}/nagios_host.cfg" diff --git a/manifests/server/service.pp b/manifests/server/service.pp index 315f7f8..3ec4b42 100644 --- a/manifests/server/service.pp +++ b/manifests/server/service.pp @@ -29,6 +29,7 @@ class cd_nagios::server::service ( require cd_nagios::server::files require cd_nagios::server::access_rules require cd_nagios::nagios::objects::commands + require cd_nagios::nagios::objects::template_rules service { $ng_service: ensure => running, diff --git a/templates/nagios/templates_cfg.erb b/templates/nagios/templates_cfg.erb new file mode 100755 index 0000000..fad436e --- /dev/null +++ b/templates/nagios/templates_cfg.erb @@ -0,0 +1,197 @@ +############################################################################### +# TEMPLATES.CFG - SAMPLE OBJECT TEMPLATES +# +# +# NOTES: This config file provides you with some example object definition +# templates that are refered by other host, service, contact, etc. +# definitions in other config files. +# +# You don't need to keep these definitions in a separate file from your +# other object definitions. This has been done just to make things +# easier to understand. +# +############################################################################### + + + +############################################################################### +############################################################################### +# +# CONTACT TEMPLATES +# +############################################################################### +############################################################################### + +# Generic contact definition template - This is NOT a real contact, just a template! + +define contact{ + name generic-contact ; The name of this contact template + service_notification_period 24x7 ; service notifications can be sent anytime + host_notification_period 24x7 ; host notifications can be sent anytime + service_notification_options w,u,c,r,f,s ; send notifications for all service states, flapping events, and scheduled downtime events + host_notification_options d,u,r,f,s ; send notifications for all host states, flapping events, and scheduled downtime events + service_notification_commands notify-service-by-email ; send service notifications via email + host_notification_commands notify-host-by-email ; send host notifications via email + register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL CONTACT, JUST A TEMPLATE! + } + + + + +############################################################################### +############################################################################### +# +# HOST TEMPLATES +# +############################################################################### +############################################################################### + +# Generic host definition template - This is NOT a real host, just a template! + +define host{ + name generic-host ; The name of this host template + notifications_enabled 1 ; Host notifications are enabled + event_handler_enabled 1 ; Host event handler is enabled + flap_detection_enabled 1 ; Flap detection is enabled + process_perf_data 1 ; Process performance data + retain_status_information 1 ; Retain status information across program restarts + retain_nonstatus_information 1 ; Retain non-status information across program restarts + notification_period 24x7 ; Send host notifications at any time + register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE! + } + + +# Linux host definition template - This is NOT a real host, just a template! + +define host{ + name linux-server ; The name of this host template + use generic-host ; This template inherits other values from the generic-host template + check_period 24x7 ; By default, Linux hosts are checked round the clock + check_interval 5 ; Actively check the host every 5 minutes + retry_interval 1 ; Schedule host check retries at 1 minute intervals + max_check_attempts 10 ; Check each Linux host 10 times (max) + check_command check-host-alive ; Default command to check Linux hosts + notification_period workhours ; Linux admins hate to be woken up, so we only notify during the day + ; Note that the notification_period variable is being overridden from + ; the value that is inherited from the generic-host template! + notification_interval 120 ; Resend notifications every 2 hours + notification_options d,u,r ; Only send notifications for specific host states + contact_groups admins ; Notifications get sent to the admins by default + register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE! + } + + + +# Windows host definition template - This is NOT a real host, just a template! + +define host{ + name windows-server ; The name of this host template + use generic-host ; Inherit default values from the generic-host template + check_period 24x7 ; By default, Windows servers are monitored round the clock + check_interval 5 ; Actively check the server every 5 minutes + retry_interval 1 ; Schedule host check retries at 1 minute intervals + max_check_attempts 10 ; Check each server 10 times (max) + check_command check-host-alive ; Default command to check if servers are "alive" + notification_period 24x7 ; Send notification out at any time - day or night + notification_interval 30 ; Resend notifications every 30 minutes + notification_options d,r ; Only send notifications for specific host states + contact_groups admins ; Notifications get sent to the admins by default + hostgroups windows-servers ; Host groups that Windows servers should be a member of + register 0 ; DONT REGISTER THIS - ITS JUST A TEMPLATE + } + + +# We define a generic printer template that can be used for most printers we monitor + +define host{ + name generic-printer ; The name of this host template + use generic-host ; Inherit default values from the generic-host template + check_period 24x7 ; By default, printers are monitored round the clock + check_interval 5 ; Actively check the printer every 5 minutes + retry_interval 1 ; Schedule host check retries at 1 minute intervals + max_check_attempts 10 ; Check each printer 10 times (max) + check_command check-host-alive ; Default command to check if printers are "alive" + notification_period workhours ; Printers are only used during the workday + notification_interval 30 ; Resend notifications every 30 minutes + notification_options d,r ; Only send notifications for specific host states + contact_groups admins ; Notifications get sent to the admins by default + statusmap_image printer.png + register 0 ; DONT REGISTER THIS - ITS JUST A TEMPLATE + } + + +# Define a template for switches that we can reuse +define host{ + name generic-switch ; The name of this host template + use generic-host ; Inherit default values from the generic-host template + check_period 24x7 ; By default, switches are monitored round the clock + check_interval 5 ; Switches are checked every 5 minutes + retry_interval 1 ; Schedule host check retries at 1 minute intervals + max_check_attempts 10 ; Check each switch 10 times (max) + check_command check-host-alive ; Default command to check if routers are "alive" + notification_period 24x7 ; Send notifications at any time + notification_interval 30 ; Resend notifications every 30 minutes + notification_options d,r ; Only send notifications for specific host states + contact_groups admins ; Notifications get sent to the admins by default + statusmap_image switch.png + register 0 ; DONT REGISTER THIS - ITS JUST A TEMPLATE + } + +# Define a template for routers that we can reuse +define host{ + name generic-router ; The name of this host template + use generic-switch ; Inherit default values from the generic-host template + statusmap_image router.png + register 0 ; DONT REGISTER THIS - ITS JUST A TEMPLATE + } + + + + +############################################################################### +############################################################################### +# +# SERVICE TEMPLATES +# +############################################################################### +############################################################################### + +# Generic service definition template - This is NOT a real service, just a template! + +define service{ + name generic-service ; The 'name' of this service template + active_checks_enabled 1 ; Active service checks are enabled + passive_checks_enabled 1 ; Passive service checks are enabled/accepted + parallelize_check 1 ; Active service checks should be parallelized (disabling this can lead to major performance problems) + obsess_over_service 1 ; We should obsess over this service (if necessary) + check_freshness 0 ; Default is to NOT check service 'freshness' + notifications_enabled 1 ; Service notifications are enabled + event_handler_enabled 1 ; Service event handler is enabled + flap_detection_enabled 1 ; Flap detection is enabled + process_perf_data 1 ; Process performance data + retain_status_information 1 ; Retain status information across program restarts + retain_nonstatus_information 1 ; Retain non-status information across program restarts + is_volatile 0 ; The service is not volatile + check_period 24x7 ; The service can be checked at any time of the day + max_check_attempts 3 ; Re-check the service up to 3 times in order to determine its final (hard) state + check_interval 10 ; Check the service every 10 minutes under normal conditions + retry_interval 2 ; Re-check the service every two minutes until a hard state can be determined + contact_groups admins ; Notifications get sent out to everyone in the 'admins' group + notification_options w,u,c,r ; Send notifications about warning, unknown, critical, and recovery events + notification_interval 60 ; Re-notify about service problems every hour + notification_period 24x7 ; Notifications can be sent out at any time + register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE! + } + + +# Local service definition template - This is NOT a real service, just a template! + +define service{ + name local-service ; The name of this service template + use generic-service ; Inherit default values from the generic-service definition + max_check_attempts 4 ; Re-check the service up to 4 times in order to determine its final (hard) state + check_interval 5 ; Check the service every 5 minutes under normal conditions + retry_interval 1 ; Re-check the service every minute until a hard state can be determined + register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE! + } + diff --git a/templates/nagios/templates_cfg_head.erb b/templates/nagios/templates_cfg_head.erb new file mode 100644 index 0000000..cbd2b0c --- /dev/null +++ b/templates/nagios/templates_cfg_head.erb @@ -0,0 +1,7 @@ +############################################################################### +### templates.cfg generated by Puppet | manual changes will be overwritten! ### +############################################################################### +########## Full reference file available at ########## +########## https://confdroid.com/2017/07/nagios-templates-cfg/ ########## +############################################################################### +# rules are created below by external puppet rules. From f5657930f604a9ac6011f51c2fb608da3eeeed8b Mon Sep 17 00:00:00 2001 From: Arne Teuke Date: Tue, 25 Jul 2017 16:32:38 +0100 Subject: [PATCH 3/7] added and linked template_rules --- manifests/nagios/objects/templates.pp | 4 +++- templates/nagios/templates_cfg_rule.erb | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 templates/nagios/templates_cfg_rule.erb diff --git a/manifests/nagios/objects/templates.pp b/manifests/nagios/objects/templates.pp index 590d05c..529dbb1 100644 --- a/manifests/nagios/objects/templates.pp +++ b/manifests/nagios/objects/templates.pp @@ -20,7 +20,9 @@ # along with this program. If not, see . # @summary Define manages populates /etc/nagios/conf.d/templates.cfg. ################################################################################ -defie cd_nagios::nagios::objects::templates ( +define cd_nagios::nagios::objects::templates ( + + ) { diff --git a/templates/nagios/templates_cfg_rule.erb b/templates/nagios/templates_cfg_rule.erb new file mode 100644 index 0000000..d4d5d14 --- /dev/null +++ b/templates/nagios/templates_cfg_rule.erb @@ -0,0 +1,4 @@ + +define <%= @ng_template_object %>{ + + } From 53e7b9d0b24391ed85906efcd4498c276949d23a Mon Sep 17 00:00:00 2001 From: Arne Teuke Date: Tue, 25 Jul 2017 16:39:28 +0100 Subject: [PATCH 4/7] added template concat --- manifests/nagios/objects/template_rules.pp | 8 ++++++++ manifests/nagios/objects/templates.pp | 12 +++++++++++- manifests/params.pp | 1 + 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/manifests/nagios/objects/template_rules.pp b/manifests/nagios/objects/template_rules.pp index 19bcf6c..3279260 100644 --- a/manifests/nagios/objects/template_rules.pp +++ b/manifests/nagios/objects/template_rules.pp @@ -19,6 +19,9 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . # @summary Class manages /etc/nagios/conf.d/templates.cfg through concat. +# @example cd_nagios::objects::templates { $name: +# ng_template_object => 'service', +# } ################################################################################ class cd_nagios::nagios::objects::template_rules ( @@ -41,5 +44,10 @@ class cd_nagios::nagios::objects::template_rules ( content => template[$ng_templates_head_erb] notify => Service[$ng_service], } + + # example rule + cd_nagios::objects::templates { $name: + ng_template_object => 'service', + } } } diff --git a/manifests/nagios/objects/templates.pp b/manifests/nagios/objects/templates.pp index 529dbb1..d2fc6f8 100644 --- a/manifests/nagios/objects/templates.pp +++ b/manifests/nagios/objects/templates.pp @@ -22,10 +22,20 @@ ################################################################################ define cd_nagios::nagios::objects::templates ( +$ng_template_object = undef, ) { -$ng_target_templates = $::cd_nagios::params::ng_target_templates +$ng_nagios_server = $::cd_nagios::params::ng_nagios_server +$ng_target_templates = $::cd_nagios::params::ng_target_templates +$ng_templates_rule_erb = $::cd_nagios::params::ng_templates_rule_erb + if $::fqdn == $ng_nagios_server { + + concat::fragment { $name: + target => $ng_target_templates, + content => template($ng_templates_rule_erb), + } + } } diff --git a/manifests/params.pp b/manifests/params.pp index 95b88ee..134e21c 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -961,6 +961,7 @@ $ng_certbot_live = "${ng_certbot_main_dir}/live" # nagios $ng_target_templates = "${ng_conf_d_dir}/templates.cfg" $ng_templates_head_erb = 'cd_nagios/nagios/templates_cfg_head.erb' +$ng_templates_rule_erb = 'cd_nagios/nagios/templates_cfg_rule.erb' $ng_target_timeperiods = "${ng_conf_d_dir}/timeperiods.cfg" $ng_target_localhost = "${ng_conf_d_dir}/nagios_localhost.cfg" $ng_target_host = "${ng_conf_d_dir}/nagios_host.cfg" From 8a97768e4b258d7ab70e79ebf4dbdcfb3eed9174 Mon Sep 17 00:00:00 2001 From: Arne Teuke Date: Tue, 25 Jul 2017 16:46:00 +0100 Subject: [PATCH 5/7] added template concat --- manifests/nagios/objects/template_rules.pp | 2 +- templates/nagios/templates_cfg_rule.erb | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/manifests/nagios/objects/template_rules.pp b/manifests/nagios/objects/template_rules.pp index 3279260..19da83a 100644 --- a/manifests/nagios/objects/template_rules.pp +++ b/manifests/nagios/objects/template_rules.pp @@ -41,7 +41,7 @@ class cd_nagios::nagios::objects::template_rules ( selrole => object_r, aeltype => nagios_etc_t, seluser => system_u, - content => template[$ng_templates_head_erb] + content => template[$ng_templates_head_erb], notify => Service[$ng_service], } diff --git a/templates/nagios/templates_cfg_rule.erb b/templates/nagios/templates_cfg_rule.erb index d4d5d14..ece05d5 100644 --- a/templates/nagios/templates_cfg_rule.erb +++ b/templates/nagios/templates_cfg_rule.erb @@ -1,4 +1,12 @@ +<% if @ng_template_object == 'contact' -%> define <%= @ng_template_object %>{ - + name <%= @ng_template_object_name %>; + } +<% elsif @ng_template_object == 'host' -%> + +<% elsif @ng_template_object == 'service' -%> + + +<% end -%> From 6a57847a121f632bea8fb4e3ccb046df1d9bf3c7 Mon Sep 17 00:00:00 2001 From: Arne Teuke Date: Tue, 25 Jul 2017 16:57:10 +0100 Subject: [PATCH 6/7] added contact stanza --- manifests/nagios/objects/template_rules.pp | 6 +++--- manifests/nagios/objects/templates.pp | 11 +++++++++-- templates/nagios/templates_cfg_rule.erb | 12 +++++++++--- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/manifests/nagios/objects/template_rules.pp b/manifests/nagios/objects/template_rules.pp index 19da83a..f802b18 100644 --- a/manifests/nagios/objects/template_rules.pp +++ b/manifests/nagios/objects/template_rules.pp @@ -39,15 +39,15 @@ class cd_nagios::nagios::objects::template_rules ( mode => '0640', selrange => s0, selrole => object_r, - aeltype => nagios_etc_t, + seltype => nagios_etc_t, seluser => system_u, content => template[$ng_templates_head_erb], - notify => Service[$ng_service], + notify => Service[$ng_service], } # example rule cd_nagios::objects::templates { $name: - ng_template_object => 'service', + ng_template_object => 'contact', } } } diff --git a/manifests/nagios/objects/templates.pp b/manifests/nagios/objects/templates.pp index d2fc6f8..7c05639 100644 --- a/manifests/nagios/objects/templates.pp +++ b/manifests/nagios/objects/templates.pp @@ -22,8 +22,15 @@ ################################################################################ define cd_nagios::nagios::objects::templates ( -$ng_template_object = undef, - +$ng_template_object = undef, +$ng_template_object_name = undef, +$ng_svc_notification_period = '24x7', +$ng_host_notification_period = '24x7', +$ng_service_notification_options = 'w,u,c,r,f,s', +$ng_host_notification_options = 'd,u,r,f,s', +$ng_service_notification_commands = 'notify-service-by-email', +$ng_host_notification_commands = 'notify-host-by-email', +$ng_object_register = '0', ) { diff --git a/templates/nagios/templates_cfg_rule.erb b/templates/nagios/templates_cfg_rule.erb index ece05d5..b5a213d 100644 --- a/templates/nagios/templates_cfg_rule.erb +++ b/templates/nagios/templates_cfg_rule.erb @@ -1,9 +1,15 @@ <% if @ng_template_object == 'contact' -%> define <%= @ng_template_object %>{ - name <%= @ng_template_object_name %>; - - } + name <%= @ng_template_object_name %> ; + service_notification_period <%= @ng_svc_notification_period %> ; + host_notification_period <%= @ng_host_notification_period %> ; + service_notification_options <%= @ng_service_notification_options %> ; + host_notification_options <%= @ng_host_notification_options %> ; + service_notification_commands <%= @ng_service_notification_commands %> ; + host_notification_commands <%= @ng_host_notification_commands %> ; + register <%= @ng_object_register %> ; + } <% elsif @ng_template_object == 'host' -%> <% elsif @ng_template_object == 'service' -%> From cc2d2cbf2968ccecb7576b9312a9ec8cdf726f4d Mon Sep 17 00:00:00 2001 From: Jenkins Server Date: Tue, 25 Jul 2017 17:57:28 +0200 Subject: [PATCH 7/7] recommit for updates in build 90 --- CHANGELOG.md | 10 + REPOSTRUCTURE.md | 12 +- doc/_index.html | 12 +- doc/file.README.html | 2 +- doc/index.html | 2 +- doc/puppet_class_list.html | 17 +- doc/puppet_classes/cd_nagios.html | 2 +- .../cd_nagios_3A_3Acertbot_3A_3Acerts.html | 2 +- .../cd_nagios_3A_3Aclient_3A_3Atarget.html | 2 +- ...cd_nagios_3A_3Afirewall_3A_3Aiptables.html | 2 +- .../cd_nagios_3A_3Amain_3A_3Aconfig.html | 2 +- .../cd_nagios_3A_3Amain_3A_3Adirs.html | 2 +- .../cd_nagios_3A_3Amain_3A_3Ainstall.html | 2 +- .../cd_nagios_3A_3Amain_3A_3Auser.html | 2 +- ...A_3Anagios_3A_3Aobjects_3A_3Acommands.html | 11 +- ...gios_3A_3Aobjects_3A_3Atemplate_rules.html | 219 ++++++++++++ doc/puppet_classes/cd_nagios_3A_3Aparams.html | 10 +- .../cd_nagios_3A_3Aselinux_3A_3Aconfig.html | 2 +- ..._nagios_3A_3Aserver_3A_3Aaccess_rules.html | 2 +- .../cd_nagios_3A_3Aserver_3A_3Afiles.html | 2 +- .../cd_nagios_3A_3Aserver_3A_3Aservice.html | 8 +- doc/puppet_defined_type_list.html | 9 +- ..._3Anagios_3A_3Aobjects_3A_3Atemplates.html | 316 ++++++++++++++++++ .../cd_nagios_3A_3Aserver_3A_3Aaccess.html | 2 +- doc/top-level-namespace.html | 2 +- 25 files changed, 619 insertions(+), 35 deletions(-) create mode 100644 doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Atemplate_rules.html create mode 100644 doc/puppet_defined_types/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Atemplates.html diff --git a/CHANGELOG.md b/CHANGELOG.md index 68b6dc2..2a1a4c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,16 @@ Changelog of Git Changelog.

No issue

+b4b3de53a39ef00 Jenkins Server 2017-07-25 14:48:58 +

+

recommit for updates in build 84

+ +

+3327f6d8692753b Arne Teuke 2017-07-25 14:48:39 +

+

added commands.pp

+ +

4ae4a056901361a Jenkins Server 2017-07-25 14:34:30

recommit for updates in build 83

diff --git a/REPOSTRUCTURE.md b/REPOSTRUCTURE.md index 9261220..b978031 100644 --- a/REPOSTRUCTURE.md +++ b/REPOSTRUCTURE.md @@ -17,6 +17,7 @@ | | |-- cd_nagios_3A_3Amain_3A_3Adirs.html | | |-- cd_nagios_3A_3Amain_3A_3Ainstall.html | | |-- cd_nagios_3A_3Amain_3A_3Auser.html +| | |-- cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Acommands.html | | |-- cd_nagios_3A_3Aparams.html | | |-- cd_nagios_3A_3Aselinux_3A_3Aconfig.html | | |-- cd_nagios_3A_3Aserver_3A_3Aaccess_rules.html @@ -46,7 +47,9 @@ | | `-- user.pp | |-- nagios | | `-- objects -| | `-- commands.pp +| | |-- commands.pp +| | |-- template_rules.pp +| | `-- templates.pp | |-- selinux | | `-- config.pp | |-- server @@ -68,7 +71,10 @@ | |-- nagios | | |-- cgi_cfg.erb | | |-- htpasswd_rule.erb -| | `-- nagios_cfg.erb +| | |-- nagios_cfg.erb +| | |-- templates_cfg.erb +| | |-- templates_cfg_head.erb +| | `-- templates_cfg_rule.erb | `-- selinux | |-- statuscgi.erb | `-- taccgi.erb @@ -82,4 +88,4 @@ |-- README.md `-- REPOSTRUCTURE.md -20 directories, 62 files +20 directories, 68 files diff --git a/doc/_index.html b/doc/_index.html index 64f9fc8..aa19c87 100644 --- a/doc/_index.html +++ b/doc/_index.html @@ -113,6 +113,11 @@ +
  • + cd_nagios::nagios::objects::template_rules + +
  • +
  • cd_nagios::params @@ -158,6 +163,11 @@
  • C
    • +
    • + cd_nagios::nagios::objects::templates + +
    • +
    • cd_nagios::server::access @@ -191,7 +201,7 @@ diff --git a/doc/file.README.html b/doc/file.README.html index 48d09e9..311f07c 100644 --- a/doc/file.README.html +++ b/doc/file.README.html @@ -338,7 +338,7 @@ environments.

      diff --git a/doc/index.html b/doc/index.html index 8d6b073..4ff7656 100644 --- a/doc/index.html +++ b/doc/index.html @@ -338,7 +338,7 @@ environments.

      diff --git a/doc/puppet_class_list.html b/doc/puppet_class_list.html index 79b0b3c..4a0751b 100644 --- a/doc/puppet_class_list.html +++ b/doc/puppet_class_list.html @@ -103,35 +103,42 @@
    • -
    • +
    • + +
    • + + +
    • -
    • +
    • -
    • +
    • -
    • +
    • -
    • +
    • diff --git a/doc/puppet_classes/cd_nagios.html b/doc/puppet_classes/cd_nagios.html index f1c943f..7448d1d 100644 --- a/doc/puppet_classes/cd_nagios.html +++ b/doc/puppet_classes/cd_nagios.html @@ -139,7 +139,7 @@ class cd_nagios { diff --git a/doc/puppet_classes/cd_nagios_3A_3Acertbot_3A_3Acerts.html b/doc/puppet_classes/cd_nagios_3A_3Acertbot_3A_3Acerts.html index c035721..18a63c9 100644 --- a/doc/puppet_classes/cd_nagios_3A_3Acertbot_3A_3Acerts.html +++ b/doc/puppet_classes/cd_nagios_3A_3Acertbot_3A_3Acerts.html @@ -230,7 +230,7 @@ class cd_nagios::certbot::certs ( diff --git a/doc/puppet_classes/cd_nagios_3A_3Aclient_3A_3Atarget.html b/doc/puppet_classes/cd_nagios_3A_3Aclient_3A_3Atarget.html index 27890a0..113dbd5 100644 --- a/doc/puppet_classes/cd_nagios_3A_3Aclient_3A_3Atarget.html +++ b/doc/puppet_classes/cd_nagios_3A_3Aclient_3A_3Atarget.html @@ -368,7 +368,7 @@ class cd_nagios::client::target ( diff --git a/doc/puppet_classes/cd_nagios_3A_3Afirewall_3A_3Aiptables.html b/doc/puppet_classes/cd_nagios_3A_3Afirewall_3A_3Aiptables.html index f1ad5b9..b619962 100644 --- a/doc/puppet_classes/cd_nagios_3A_3Afirewall_3A_3Aiptables.html +++ b/doc/puppet_classes/cd_nagios_3A_3Afirewall_3A_3Aiptables.html @@ -207,7 +207,7 @@ class cd_nagios::firewall::iptables ( diff --git a/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Aconfig.html b/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Aconfig.html index 30e3a93..15ce4a4 100644 --- a/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Aconfig.html +++ b/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Aconfig.html @@ -195,7 +195,7 @@ class cd_nagios::main::config ( diff --git a/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Adirs.html b/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Adirs.html index 110c7f2..5f43310 100644 --- a/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Adirs.html +++ b/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Adirs.html @@ -468,7 +468,7 @@ class cd_nagios::main::dirs ( diff --git a/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Ainstall.html b/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Ainstall.html index 0a24015..2797401 100644 --- a/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Ainstall.html +++ b/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Ainstall.html @@ -235,7 +235,7 @@ class cd_nagios::main::install ( diff --git a/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Auser.html b/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Auser.html index 7899f32..3ff3271 100644 --- a/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Auser.html +++ b/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Auser.html @@ -200,7 +200,7 @@ class cd_nagios::main::user ( diff --git a/doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Acommands.html b/doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Acommands.html index bc907ec..c7368ea 100644 --- a/doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Acommands.html +++ b/doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Acommands.html @@ -77,7 +77,8 @@

      Summary

      - Class manages all configuration files required for cd_nagios. + Class manages all commands known to NAGIOS through Puppet exports, +and populates /etc/nagios/conf.d/nagios_commands.cfg.

      Overview

      @@ -129,7 +130,6 @@ href="http://www.gnu.org/licenses">www.gnu.org/licenses/.

       
       
      -23
       24
       25
       26
      @@ -355,10 +355,11 @@ href="http://www.gnu.org/licenses">www.gnu.org/licenses/.

      246 247 248 -249
      +249 +250 -
      # File 'manifests/nagios/objects/commands.pp', line 23
      +        
      # File 'manifests/nagios/objects/commands.pp', line 24
       
       class cd_nagios::nagios::objects::commands (
       
      @@ -594,7 +595,7 @@ class cd_nagios::nagios::objects::commands (
       
      diff --git a/doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Atemplate_rules.html b/doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Atemplate_rules.html new file mode 100644 index 0000000..d5dcf38 --- /dev/null +++ b/doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Atemplate_rules.html @@ -0,0 +1,219 @@ + + + + + + + Puppet Class: cd_nagios::nagios::objects::template_rules + + — Documentation by YARD 0.9.9 + + + + + + + + + + + + + + + + + + + +
      + + +

      Puppet Class: cd_nagios::nagios::objects::template_rules

      +
      + +
      +
      Inherits:
      +
      cd_nagios::params
      +
      + + +
      +
      Defined in:
      +
      + manifests/nagios/objects/template_rules.pp +
      +
      +
      + +

      Summary

      + Class manages /etc/nagios/conf.d/templates.cfg through concat. + +

      Overview

      +
      +
      + +

      cd_nagios::nagios::objects::template_rules.pp +Module name: +cd_nagios +Author: Arne Teuke (arne_teuke@ConfDroid.com)

      + +

      License:

      + +

      This file is part of cd_nagios.

      + +

      cd_nagios is used for providing automatic configuration of Nagios + +Copyright (C) 2016 ConfDroid (copyright@ConfDroid.com) + This program is +free software: you can redistribute it and/or modify + it under the terms of +the GNU General Public License as published by + the Free Software +Foundation, either version 3 of the License, or + (at your option) any later +version.

      + +

      This program is distributed in the hope that it will be useful, + but +WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY +or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License +for more details.

      + +

      You should have received a copy of the GNU General Public License + along +with this program. If not, see www.gnu.org/licenses/. + }

      + +
      +
      +
      + +
      +

      Examples:

      + + +

      +

      cd_nagios::objects::templates { $name:

      +

      + +
      ng_template_object => 'service',
      + +
      + + +
      + + + + + +
      +
      +
      +
      +26
      +27
      +28
      +29
      +30
      +31
      +32
      +33
      +34
      +35
      +36
      +37
      +38
      +39
      +40
      +41
      +42
      +43
      +44
      +45
      +46
      +47
      +48
      +49
      +50
      +51
      +52
      +53
      +
      +
      # File 'manifests/nagios/objects/template_rules.pp', line 26
      +
      +class cd_nagios::nagios::objects::template_rules (
      +
      +) inherits cd_nagios::params {
      +
      +  if $::fqdn == $ng_nagios_server {
      +
      +    # create the templates.cfg file
      +
      +    concat { $ng_target_templates:
      +      ensure    =>  present,
      +      path      =>  $ng_target_templates,
      +      owner     =>  $ng_user,
      +      group     =>  $ng_user,
      +      mode      =>  '0640',
      +      selrange  =>  s0,
      +      selrole   =>  object_r,
      +      seltype   =>  nagios_etc_t,
      +      seluser   =>  system_u,
      +      content   =>  template[$ng_templates_head_erb],
      +      notify    =>  Service[$ng_service],
      +    }
      +
      +    # example rule 
      +    cd_nagios::objects::templates { $name:
      +      ng_template_object => 'contact',
      +    }
      +  }
      +}
      +
      +
      +
      + + + +
      + + \ No newline at end of file diff --git a/doc/puppet_classes/cd_nagios_3A_3Aparams.html b/doc/puppet_classes/cd_nagios_3A_3Aparams.html index 25a71f9..2228370 100644 --- a/doc/puppet_classes/cd_nagios_3A_3Aparams.html +++ b/doc/puppet_classes/cd_nagios_3A_3Aparams.html @@ -91,6 +91,8 @@ cd_nagios::nagios::objects::commands
      + cd_nagios::nagios::objects::template_rules
      + @@ -5204,7 +5206,8 @@ up

      979 980 981 -982 +982 +983
      # File 'manifests/params.pp', line 646
      @@ -5525,8 +5528,9 @@ $ng_certbot_check         = "${ng_certbot_archive}/${ng_webserver_name}/cer
       $ng_certbot_live          = "${ng_certbot_main_dir}/live"
       
       # nagios
      -
       $ng_target_templates      = "${ng_conf_d_dir}/templates.cfg"
      +$ng_templates_head_erb    = 'cd_nagios/nagios/templates_cfg_head.erb'
      +$ng_templates_rule_erb    = 'cd_nagios/nagios/templates_cfg_rule.erb'
       $ng_target_timeperiods    = "${ng_conf_d_dir}/timeperiods.cfg"
       $ng_target_localhost      = "${ng_conf_d_dir}/nagios_localhost.cfg"
       $ng_target_host           = "${ng_conf_d_dir}/nagios_host.cfg"
      @@ -5553,7 +5557,7 @@ $ng_target_command        = "${ng_conf_d_dir}/nagios_command.cfg"
       
       
             
      diff --git a/doc/puppet_classes/cd_nagios_3A_3Aselinux_3A_3Aconfig.html b/doc/puppet_classes/cd_nagios_3A_3Aselinux_3A_3Aconfig.html
      index 38bd21a..09f6d8e 100644
      --- a/doc/puppet_classes/cd_nagios_3A_3Aselinux_3A_3Aconfig.html
      +++ b/doc/puppet_classes/cd_nagios_3A_3Aselinux_3A_3Aconfig.html
      @@ -249,7 +249,7 @@ class cd_nagios::selinux::config (
       
       
             
      diff --git a/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Aaccess_rules.html b/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Aaccess_rules.html
      index d959d0e..199c557 100644
      --- a/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Aaccess_rules.html
      +++ b/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Aaccess_rules.html
      @@ -195,7 +195,7 @@ class cd_nagios::server::access_rules (
       
       
             
      diff --git a/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Afiles.html b/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Afiles.html
      index ec0e8a8..59e8d77 100644
      --- a/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Afiles.html
      +++ b/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Afiles.html
      @@ -334,7 +334,7 @@ class cd_nagios::server::files (
       
       
             
      diff --git a/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Aservice.html b/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Aservice.html
      index 4886b7f..38e5f8d 100644
      --- a/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Aservice.html
      +++ b/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Aservice.html
      @@ -191,7 +191,9 @@ href="http://www.gnu.org/licenses">www.gnu.org/licenses/.

      82 83 84 -85
      +85 +86 +87
      # File 'manifests/server/service.pp', line 23
      @@ -204,6 +206,8 @@ class cd_nagios::server::service (
       
           require cd_nagios::server::files
           require cd_nagios::server::access_rules
      +    require cd_nagios::nagios::objects::commands
      +    require cd_nagios::nagios::objects::template_rules
       
           service { $ng_service:
             ensure      => running,
      @@ -266,7 +270,7 @@ class cd_nagios::server::service (
       
       
             
      diff --git a/doc/puppet_defined_type_list.html b/doc/puppet_defined_type_list.html
      index 1a1b62b..cf5fe31 100644
      --- a/doc/puppet_defined_type_list.html
      +++ b/doc/puppet_defined_type_list.html
      @@ -40,7 +40,14 @@
             
        -
      • +
      • + +
      • + + +
      • diff --git a/doc/puppet_defined_types/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Atemplates.html b/doc/puppet_defined_types/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Atemplates.html new file mode 100644 index 0000000..b3b0604 --- /dev/null +++ b/doc/puppet_defined_types/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Atemplates.html @@ -0,0 +1,316 @@ + + + + + + + Defined Type: cd_nagios::nagios::objects::templates + + — Documentation by YARD 0.9.9 + + + + + + + + + + + + + + + + + + + +
        + + +

        Defined Type: cd_nagios::nagios::objects::templates

        +
        +
        +
        Defined in:
        +
        + manifests/nagios/objects/templates.pp +
        +
        +
        + +

        Summary

        + Define manages populates /etc/nagios/conf.d/templates.cfg. + +

        Overview

        +
        +
        + +

        cd_nagios::nagios::objects::templates.pp +Module name: cd_nagios +Author: +Arne Teuke (arne_teuke@ConfDroid.com)

        + +

        License:

        + +

        This file is part of cd_nagios.

        + +

        cd_nagios is used for providing automatic configuration of Nagios + +Copyright (C) 2016 ConfDroid (copyright@ConfDroid.com) + This program is +free software: you can redistribute it and/or modify + it under the terms of +the GNU General Public License as published by + the Free Software +Foundation, either version 3 of the License, or + (at your option) any later +version.

        + +

        This program is distributed in the hope that it will be useful, + but +WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY +or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License +for more details.

        + +

        You should have received a copy of the GNU General Public License + along +with this program. If not, see www.gnu.org/licenses/.

        + +
        +
        +
        +

        Parameters:

        +
          + +
        • + + ng_template_object + + + (Any) + + + (defaults to: undef) + + +
        • + +
        • + + ng_template_object_name + + + (Any) + + + (defaults to: undef) + + +
        • + +
        • + + ng_svc_notification_period + + + (Any) + + + (defaults to: '24x7') + + +
        • + +
        • + + ng_host_notification_period + + + (Any) + + + (defaults to: '24x7') + + +
        • + +
        • + + ng_service_notification_options + + + (Any) + + + (defaults to: 'w,u,c,r,f,s') + + +
        • + +
        • + + ng_host_notification_options + + + (Any) + + + (defaults to: 'd,u,r,f,s') + + +
        • + +
        • + + ng_service_notification_commands + + + (Any) + + + (defaults to: 'notify-service-by-email') + + +
        • + +
        • + + ng_host_notification_commands + + + (Any) + + + (defaults to: 'notify-host-by-email') + + +
        • + +
        • + + ng_object_register + + + (Any) + + + (defaults to: '0') + + +
        • + +
        + + +
        + + + + + +
        +
        +
        +
        +23
        +24
        +25
        +26
        +27
        +28
        +29
        +30
        +31
        +32
        +33
        +34
        +35
        +36
        +37
        +38
        +39
        +40
        +41
        +42
        +43
        +44
        +45
        +46
        +47
        +48
        +
        +
        # File 'manifests/nagios/objects/templates.pp', line 23
        +
        +define cd_nagios::nagios::objects::templates (
        +
        +$ng_template_object               = undef,
        +$ng_template_object_name          = undef,
        +$ng_svc_notification_period       = '24x7',
        +$ng_host_notification_period      = '24x7', 
        +$ng_service_notification_options  = 'w,u,c,r,f,s',
        +$ng_host_notification_options     = 'd,u,r,f,s',
        +$ng_service_notification_commands = 'notify-service-by-email',
        +$ng_host_notification_commands    = 'notify-host-by-email',
        +$ng_object_register               = '0',
        +
        +) {
        +
        +$ng_nagios_server       = $::cd_nagios::params::ng_nagios_server
        +$ng_target_templates    = $::cd_nagios::params::ng_target_templates
        +$ng_templates_rule_erb  = $::cd_nagios::params::ng_templates_rule_erb
        +
        +  if $::fqdn == $ng_nagios_server {
        +
        +  concat::fragment { $name:
        +    target    =>  $ng_target_templates,
        +    content   =>  template($ng_templates_rule_erb),
        +    }
        +  }
        +}
        +
        +
        +
        + + + +
        + + \ No newline at end of file diff --git a/doc/puppet_defined_types/cd_nagios_3A_3Aserver_3A_3Aaccess.html b/doc/puppet_defined_types/cd_nagios_3A_3Aserver_3A_3Aaccess.html index 7bacdd4..ec329c8 100644 --- a/doc/puppet_defined_types/cd_nagios_3A_3Aserver_3A_3Aaccess.html +++ b/doc/puppet_defined_types/cd_nagios_3A_3Aserver_3A_3Aaccess.html @@ -220,7 +220,7 @@ $ng_service = $::cd_nagios::params::ng_service diff --git a/doc/top-level-namespace.html b/doc/top-level-namespace.html index cee4a67..2f4cabc 100644 --- a/doc/top-level-namespace.html +++ b/doc/top-level-namespace.html @@ -90,7 +90,7 @@