From 85ade68820b8379b47acb4c1f515d943b01537d7 Mon Sep 17 00:00:00 2001 From: Arne Teuke Date: Wed, 26 Jul 2017 12:16:25 +0100 Subject: [PATCH 1/2] added base contacts and additional contacts --- README.md | 4 + manifests/nagios/objects/add_contact.pp | 35 ++++ manifests/nagios/objects/add_contact_rules.pp | 69 ++++++ manifests/nagios/objects/config.pp | 34 +++ manifests/nagios/objects/contacts.pp | 97 +++++++++ manifests/nagios/objects/template_rules.pp | 3 +- manifests/nagios/objects/templates.pp | 6 +- manifests/params.pp | 7 +- manifests/server/service.pp | 3 +- templates/nagios/contacts_cfg.erb | 54 +++++ templates/nagios/contacts_cfg_head.erb | 8 + templates/nagios/contacts_cfg_rule.erb | 7 + templates/nagios/templates_cfg.erb | 197 ------------------ templates/nagios/templates_cfg_head.erb | 2 +- templates/nagios/templates_cfg_rule.erb | 18 +- 15 files changed, 328 insertions(+), 216 deletions(-) create mode 100644 manifests/nagios/objects/add_contact.pp create mode 100644 manifests/nagios/objects/add_contact_rules.pp create mode 100644 manifests/nagios/objects/config.pp create mode 100644 manifests/nagios/objects/contacts.pp create mode 100755 templates/nagios/contacts_cfg.erb create mode 100644 templates/nagios/contacts_cfg_head.erb create mode 100644 templates/nagios/contacts_cfg_rule.erb delete mode 100755 templates/nagios/templates_cfg.erb diff --git a/README.md b/README.md index c2de47d..0a1f15d 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,8 @@ Configuration * manage nagios.cfg through parameters * manage Nagios users through external Puppet rules via define * manage Nagios commands through Puppet exports +* manage Nagios template definitions through external Puppet rules via define +* manage Nagios main contacts through Puppet exports. Additional contacts can be created through external Puppet rules via define, to avoid having to alter the module code. * configure NRPE on clients (optional) * configure firewall (optional) * configure selinux policies (optional) @@ -67,6 +69,8 @@ All dependencies must be included in the catalogue. * [cd_firewall](https://gitlab.puppetsoft.com/12WW1160/cd_firewall) or [puppetlabs firewall](https://github.com/puppetlabs/puppetlabs-firewall) (optional) * [cd_selinux](https://gitlab.puppetsoft.com/12WW1160/cd_selinux) for selinux policy adjustments * [cd_certbot](https://gitlab.puppetsoft.com/12WW1160/cd_certbot) to auto-manage TLS certificates (optional) +* [cd_stdlib](https://gitlab.puppetsoft.com/12WW1160/cd_stdlib) or [puppetlabs stdlib](https://github.com/puppetlabs/puppetlabs-stdlib) to facilitate concat +* [cd-concat](https://gitlab.puppetsoft.com/12WW1160/cd_stdlib) or [puppetlabs concat](https://github.com/puppetlabs/puppetlabs-concat) to concatenate configuration files from different sources. ### Deployment diff --git a/manifests/nagios/objects/add_contact.pp b/manifests/nagios/objects/add_contact.pp new file mode 100644 index 0000000..520d644 --- /dev/null +++ b/manifests/nagios/objects/add_contact.pp @@ -0,0 +1,35 @@ +## cd_nagios::nagios::objects::add_contact.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 additional contacts known to NAGIOS through external +# Puppet rules, and populates /etc/nagios/conf.d/nagios_add_contact.cfg. +# @example +################################################################################ +define cd_nagios::nagios::objects::add_contact ( + +$ng_contact_name = undef, +$ng_contact_use = 'generic-contact', +$ng_contact_alias = undef, +$ng_contact_email = undef, +$ng_contact_groups = undef, + +) { + +} diff --git a/manifests/nagios/objects/add_contact_rules.pp b/manifests/nagios/objects/add_contact_rules.pp new file mode 100644 index 0000000..3384911 --- /dev/null +++ b/manifests/nagios/objects/add_contact_rules.pp @@ -0,0 +1,69 @@ +## cd_nagios::nagios::objects::add_contact_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/nagios_add_contact.cfg through +# concat. +# @example +# cd_nagios::nagios::objects::add_contact { 'example_user': +# ng_contact_name => 'example_user', +# ng_contact_alias => 'Example User', +# ng_contact_groups => 'admins', +# ng_contact_email => 'example@example.net', +# } +################################################################################ +class cd_nagios::nagios::objects::add_contact_rules ( + +) inherits cd_nagios::params { + + if $::fqdn == $ng_nagios_server { + + # manage /etc/nagios/conf.d/nagios_add_contacts.cfg + + concat { $ng_target_add_contact: + ensure => present, + path => $ng_target_add_contact, + owner => $ng_user, + group => $ng_user, + mode => '0640', + selrange => s0, + selrole => object_r, + seltype => nagios_etc_t, + seluser => system_u, + notify => Service[$ng_service], + } + + # manage file header + + concat::fragment { 'header': + target => $ng_target_add_contact, + content => template($ng_contacts_head_erb), + order => '000', + } + + # example rule for testing + + cd_nagios::nagios::objects::add_contact { 'example_user': + ng_contact_name => 'example_user', + ng_contact_alias => 'Example User', + ng_contact_groups => 'admins', + ng_contact_email => 'example@example.net', + } + } +} diff --git a/manifests/nagios/objects/config.pp b/manifests/nagios/objects/config.pp new file mode 100644 index 0000000..cf828d0 --- /dev/null +++ b/manifests/nagios/objects/config.pp @@ -0,0 +1,34 @@ +## cd_nagios::server::nagios::objects::config.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 the nagios objects definitions. +############################################################################# +class cd_nagios::nagios::objects::config ( + +) inherits cd_nagios::params { + + if $::fqdn == $ng_nagios_server { + + require cd_nagios::nagios::objects::commands + require cd_nagios::nagios::objects::template_rules + require cd_nagios::nagios::objects::add_contact_rules + + } +} diff --git a/manifests/nagios/objects/contacts.pp b/manifests/nagios/objects/contacts.pp new file mode 100644 index 0000000..43eb9e0 --- /dev/null +++ b/manifests/nagios/objects/contacts.pp @@ -0,0 +1,97 @@ +## cd_nagios::nagios::objects::contacts.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 basic contacts known to NAGIOS through Puppet exports, +# and populates /etc/nagios/conf.d/nagios_base_contacts.cfg. +# @example +# @@nagios_contact { 'admin': +# ensure => present, +# alias => 'Nagios Admin', +# contact_name => 'admin', +# contactgroups => 'admins', +# email => "admin@${::domain}", +# can_submit_commands => '1', +# register => '1', +# use => 'generic-contact', +# target => $ng_target_base_contact, +# owner => 'root', +# group => 'nagios', +# mode => '0664', +# } +################################################################################ +class cd_nagios::nagios::objects::contacts ( + + +) inherits cd_nagios::params { + + if $::fqdn == $ng_nagios_server { + + # admin contact + + @@nagios_contact { 'admin': + ensure => present, + alias => 'Nagios Admin', + contact_name => 'admin', + contactgroups => 'admins', + email => "admin@${::domain}", + can_submit_commands => '1', + register => '1', + use => 'generic-contact', + target => $ng_target_base_contact, + owner => $ng_user, + group => $ng_user, + mode => '0640', + } + + # ops contact + + @@nagios_contact { 'ops': + ensure => present, + alias => 'Operations', + contact_name => 'ops', + contactgroups => 'operations', + email => "ops@${::domain}", + can_submit_commands => '1', + register => '1', + use => 'generic-contact', + target => $ng_target_base_contact, + owner => $ng_user, + group => $ng_user, + mode => '0640', + } + + # support contact + + @@nagios_contact { 'support': + ensure => present, + alias => 'support', + contact_name => 'support', + contactgroups => 'support', + email => "support@${::domain}", + can_submit_commands => '1', + register => '1', + use => 'generic-contact', + target => $ng_target_base_contact, + owner => $ng_user, + group => $ng_user, + mode => '0640', + } + } +} diff --git a/manifests/nagios/objects/template_rules.pp b/manifests/nagios/objects/template_rules.pp index b5e133a..63e94bb 100644 --- a/manifests/nagios/objects/template_rules.pp +++ b/manifests/nagios/objects/template_rules.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 /etc/nagios/conf.d/templates.cfg through concat. +# @summary Class manages /etc/nagios/conf.d/nagios_templates.cfg through +# concat. # @example cd_nagios::nagios::objects::templates { 'generic contact': # ng_template_object => 'contact', # ng_template_object_name => 'generic-contact', diff --git a/manifests/nagios/objects/templates.pp b/manifests/nagios/objects/templates.pp index ab7da62..5f04474 100644 --- a/manifests/nagios/objects/templates.pp +++ b/manifests/nagios/objects/templates.pp @@ -25,7 +25,7 @@ # i.e. `generic-contact`, `generic-host`, `generic-service`. # @param [string] ng_svc_notification_period Period in which to send out # notifications for service events, i.e. `24x7`. -# @param [string] ng_svc_notification_period Period in which to send out +# @param [string] ng_host_notification_period Period in which to send out # notifications for host events , i.e. `24x7`. # @param [string] ng_service_notification_options What service events to send # out notifications for: @@ -77,6 +77,7 @@ # retries for the defined object. # @param [string] ng_max_check_attempts how often to check the defined object # maximal. +# @param [string] ng_check_command The command to use for host checks. # @param [string] ng_notification_options see `ng_service_notification_options` # and `ng_host_notification_options`. # @param [string] ng_contact_groups contact groups for the defined oject. @@ -112,7 +113,6 @@ $ng_template_object_use = undef, $ng_notifications_enabled = '1', $ng_event_handler_enabled = '1', $ng_flap_detection_enabled = '1', -$ng_failure_prediction_enabled = '1', $ng_process_perf_data = '1', $ng_retain_status_information = '1', $ng_retain_nonstatus_information = '1', @@ -122,7 +122,7 @@ $ng_check_period = '24x7', $ng_check_interval = '5', $ng_retry_interval = '1', $ng_max_check_attempts = '10', -$ng_check_command = 'check-host-alive', +$ng_host_check_command = 'check-host-alive', $ng_notification_options = undef, $ng_contact_groups = 'admins', $ng_active_checks_enabled = '1', diff --git a/manifests/params.pp b/manifests/params.pp index 134e21c..7ad6e13 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -959,7 +959,7 @@ $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_target_templates = "${ng_conf_d_dir}/nagios_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" @@ -971,7 +971,10 @@ $ng_target_hostesc = "${ng_conf_d_dir}/nagios_hostescalation.cfg" $ng_target_hostext = "${ng_conf_d_dir}/nagios_hostextinfo.cfg" $ng_target_service = "${ng_conf_d_dir}/nagios_service.cfg" $ng_target_servicegroup = "${ng_conf_d_dir}/nagios_servicegroup.cfg" -$ng_target_contact = "${ng_conf_d_dir}/nagios_contact.cfg" +$ng_target_base_contact = "${ng_conf_d_dir}/nagios_base_contact.cfg" +$ng_target_add_contact = "${ng_conf_d_dir}/nagios_add_contact.cfg" +$ng_contacts_head_erb = 'cd_nagios/nagios/contacts_cfg_head.erb' +$ng_contact_rule_erb = 'cd_nagios/nagios/contact_cfg_rule.erb' $ng_target_contactgroup = "${ng_conf_d_dir}/nagios_contactgroup.cfg" $ng_target_command = "${ng_conf_d_dir}/nagios_command.cfg" diff --git a/manifests/server/service.pp b/manifests/server/service.pp index 3ec4b42..bacd990 100644 --- a/manifests/server/service.pp +++ b/manifests/server/service.pp @@ -28,8 +28,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 + require cd_nagios::nagios::objects::config service { $ng_service: ensure => running, diff --git a/templates/nagios/contacts_cfg.erb b/templates/nagios/contacts_cfg.erb new file mode 100755 index 0000000..98407a3 --- /dev/null +++ b/templates/nagios/contacts_cfg.erb @@ -0,0 +1,54 @@ +############################################################################### +# CONTACTS.CFG - SAMPLE CONTACT/CONTACTGROUP DEFINITIONS +# +# +# NOTES: This config file provides you with some example contact and contact +# group definitions that you can reference in host and service +# definitions. +# +# 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. +# +############################################################################### + + + +############################################################################### +############################################################################### +# +# CONTACTS +# +############################################################################### +############################################################################### + +# Just one contact defined by default - the Nagios admin (that's you) +# This contact definition inherits a lot of default values from the 'generic-contact' +# template which is defined elsewhere. + +define contact{ + contact_name nagiosadmin ; Short name of user + use generic-contact ; Inherit default values from generic-contact template (defined above) + alias Nagios Admin ; Full name of user + + email nagios@localhost ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ****** + } + + + +############################################################################### +############################################################################### +# +# CONTACT GROUPS +# +############################################################################### +############################################################################### + +# We only have one contact in this simple configuration file, so there is +# no need to create more than one contact group. + +define contactgroup{ + contactgroup_name admins + alias Nagios Administrators + members nagiosadmin + } diff --git a/templates/nagios/contacts_cfg_head.erb b/templates/nagios/contacts_cfg_head.erb new file mode 100644 index 0000000..c357ffc --- /dev/null +++ b/templates/nagios/contacts_cfg_head.erb @@ -0,0 +1,8 @@ +############################################################################### +########## nagios_add_contact.cfg created by Puppet ########## +########## manual changes are overwritten! ########## +############################################################################### +########## Full reference file available at ########## +########## https://confdroid.com/2017/07/nagios-contacts-cfg/ ########## +############################################################################### +# rules are created below by external puppet rules. diff --git a/templates/nagios/contacts_cfg_rule.erb b/templates/nagios/contacts_cfg_rule.erb new file mode 100644 index 0000000..6f103fa --- /dev/null +++ b/templates/nagios/contacts_cfg_rule.erb @@ -0,0 +1,7 @@ +define contact { + contact_name <%= @ng_contact_name %> + use <%= @ng_contact_use %> + alias <%= @ng_contact_alias %> + email <%= @ng_contact_email %> + contactgroups <%= @ng_contact_groups %> + } diff --git a/templates/nagios/templates_cfg.erb b/templates/nagios/templates_cfg.erb deleted file mode 100755 index fad436e..0000000 --- a/templates/nagios/templates_cfg.erb +++ /dev/null @@ -1,197 +0,0 @@ -############################################################################### -# 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 index cbd2b0c..b613344 100644 --- a/templates/nagios/templates_cfg_head.erb +++ b/templates/nagios/templates_cfg_head.erb @@ -1,5 +1,5 @@ ############################################################################### -### templates.cfg generated by Puppet | manual changes will be overwritten! ### +### nagios_templates.cfg created by Puppet | manual changes are overwritten!### ############################################################################### ########## Full reference file available at ########## ########## https://confdroid.com/2017/07/nagios-templates-cfg/ ########## diff --git a/templates/nagios/templates_cfg_rule.erb b/templates/nagios/templates_cfg_rule.erb index 2c00f14..7d1208b 100644 --- a/templates/nagios/templates_cfg_rule.erb +++ b/templates/nagios/templates_cfg_rule.erb @@ -17,7 +17,6 @@ define <%= @ng_template_object %>{ notifications_enabled <%= @ng_notifications_enabled %> event_handler_enabled <%= @ng_event_handler_enabled %> flap_detection_enabled <%= @ng_flap_detection_enabled %> - failure_prediction_enabled <%= @ng_failure_prediction_enabled %> process_perf_data <%= @ng_process_perf_data %> retain_status_information <%= @ng_retain_status_information %> retain_nonstatus_information <%= @ng_retain_nonstatus_information %> @@ -33,7 +32,7 @@ define <%= @ng_template_object %>{ check_interval <%= @ng_check_interval %> retry_interval <%= @ng_retry_interval %> max_check_attempts <%= @ng_ng_max_check_attempts %> - check_command <%= @ng_check_command %> + check_command <%= @ng_host_check_command %> notification_period <%= @ng_notification_period %> notification_interval <%= @ng_notification_interval %> notification_options <%= @ng_notification_options %> @@ -41,7 +40,7 @@ define <%= @ng_template_object %>{ hostgroups linux-servers register <%= @ng_object_register %> } -<% end %> +<% end -%> <% if @ng_template_object_name == 'windows-server' -%> define <%= @ng_template_object %>{ name <%= @ng_template_object_name %> @@ -50,7 +49,7 @@ define <%= @ng_template_object %>{ check_interval <%= @ng_check_interval %> retry_interval <%= @ng_retry_interval %> max_check_attempts <%= @ng_max_check_attempts %> - check_command <%= @ng_check_command %> + check_command <%= @ng_host_check_command %> notification_period <%= @ng_notification_period %> notification_interval <%= @ng_notification_interval %> notification_options <%= @ng_notification_options %> @@ -58,7 +57,7 @@ define <%= @ng_template_object %>{ hostgroups windows-servers register <%= @ng_object_register %> } -<% end %> +<% end -%> <% if @ng_template_object_name == 'generic_printer' -%> define <%= @ng_template_object %>{ name <%= @ng_template_object_name %> @@ -67,7 +66,7 @@ define <%= @ng_template_object %>{ check_interval <%= @ng_check_interval %> retry_interval <%= @ng_retry_interval %> max_check_attempts <%= @ng_max_check_attempts %> - check_command <%= @ng_check_command %> + check_command <%= @ng_host_check_command %> notification_period <%= @ng_notification_period %> notification_interval <%= @ng_notification_interval %> notification_options <%= @ng_notification_options %> @@ -75,7 +74,7 @@ define <%= @ng_template_object %>{ statusmap_image printer.png register <%= @ng_object_register %> } -<% end %> +<% end -%> <% if @ng_template_object_name == 'generic_switch' -%> define <%= @ng_template_object %>{ name <%= @ng_template_object_name %> @@ -84,7 +83,7 @@ define <%= @ng_template_object %>{ check_interval <%= @ng_check_interval %> retry_interval <%= @ng_retry_interval %> max_check_attempts <%= @ng_max_check_attempts %> - check_command <%= @ng_check_command %> + check_command <%= @ng_host_check_command %> notification_period <%= @ng_notification_period %> notification_interval <%= @ng_notification_interval %> notification_options <%= @ng_notification_options %> @@ -92,7 +91,7 @@ define <%= @ng_template_object %>{ statusmap_image switch.png register <%= @ng_object_register %> } -<% end %> +<% end -%> <% elsif @ng_template_object == 'service' -%> <% if @ng_template_object_name == 'generic-service' -%> define <%= @ng_template_object %>{ @@ -105,7 +104,6 @@ define <%= @ng_template_object %>{ notifications_enabled <%= @ng_notifications_enabled %> event_handler_enabled <%= @ng_event_handler_enabled %> flap_detection_enabled <%= @ng_flap_detection_enabled %> - failure_prediction_enabled <%= @ng_failure_prediction_enabled %> process_perf_data <%= @ng_process_perf_data %> retain_status_information <%= @ng_retain_status_information %> retain_nonstatus_information <%= @ng_retain_nonstatus_information %> From d395b5f60d08f612b779bf9c92184ed750fa51a6 Mon Sep 17 00:00:00 2001 From: Jenkins Server Date: Wed, 26 Jul 2017 13:16:49 +0200 Subject: [PATCH 2/2] recommit for updates in build 97 --- CHANGELOG.md | 15 + REPOSTRUCTURE.md | 10 +- doc/_index.html | 22 +- doc/file.README.html | 32 +- doc/index.html | 32 +- doc/puppet_class_list.html | 35 ++- 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 +- ...s_3A_3Aobjects_3A_3Aadd_contact_rules.html | 238 ++++++++++++++ ...A_3Anagios_3A_3Aobjects_3A_3Acommands.html | 2 +- ..._3A_3Anagios_3A_3Aobjects_3A_3Aconfig.html | 174 +++++++++++ ...A_3Anagios_3A_3Aobjects_3A_3Acontacts.html | 290 ++++++++++++++++++ ...gios_3A_3Aobjects_3A_3Atemplate_rules.html | 11 +- doc/puppet_classes/cd_nagios_3A_3Aparams.html | 20 +- .../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 | 11 +- ...Anagios_3A_3Aobjects_3A_3Aadd_contact.html | 235 ++++++++++++++ ..._3Anagios_3A_3Aobjects_3A_3Atemplates.html | 43 ++- .../cd_nagios_3A_3Aserver_3A_3Aaccess.html | 2 +- doc/top-level-namespace.html | 2 +- 29 files changed, 1124 insertions(+), 80 deletions(-) create mode 100644 doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Aadd_contact_rules.html create mode 100644 doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Aconfig.html create mode 100644 doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Acontacts.html create mode 100644 doc/puppet_defined_types/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Aadd_contact.html diff --git a/CHANGELOG.md b/CHANGELOG.md index 6971968..215c319 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,21 @@ Changelog of Git Changelog.

No issue

+62feddee64c23f9 Jenkins Server 2017-07-25 18:04:08 +

+

recommit for updates in build 96

+ +

+099828e47a377d2 Arne Teuke 2017-07-25 18:02:29 +

+

testing templates

+ +

+336e03f6090e222 Arne Teuke 2017-07-25 18:01:03 +

+

testing templates

+ +

a23722a67a2afb6 Jenkins Server 2017-07-25 17:56:39

recommit for updates in build 93

diff --git a/REPOSTRUCTURE.md b/REPOSTRUCTURE.md index 0ed4ca0..d3de3ff 100644 --- a/REPOSTRUCTURE.md +++ b/REPOSTRUCTURE.md @@ -49,7 +49,11 @@ | | `-- user.pp | |-- nagios | | `-- objects +| | |-- add_contact.pp +| | |-- add_contact_rules.pp | | |-- commands.pp +| | |-- config.pp +| | |-- contacts.pp | | |-- template_rules.pp | | `-- templates.pp | |-- selinux @@ -72,9 +76,11 @@ | | `-- nagios_ssl_vhost.erb | |-- nagios | | |-- cgi_cfg.erb +| | |-- contacts_cfg.erb +| | |-- contacts_cfg_head.erb +| | |-- contacts_cfg_rule.erb | | |-- htpasswd_rule.erb | | |-- nagios_cfg.erb -| | |-- templates_cfg.erb | | |-- templates_cfg_head.erb | | `-- templates_cfg_rule.erb | `-- selinux @@ -90,4 +96,4 @@ |-- README.md `-- REPOSTRUCTURE.md -20 directories, 70 files +20 directories, 76 files diff --git a/doc/_index.html b/doc/_index.html index 64a6a02..04af5c1 100644 --- a/doc/_index.html +++ b/doc/_index.html @@ -108,11 +108,26 @@ +
  • + cd_nagios::nagios::objects::add_contact_rules + +
  • +
  • cd_nagios::nagios::objects::commands
  • +
  • + cd_nagios::nagios::objects::config + +
  • + +
  • + cd_nagios::nagios::objects::contacts + +
  • +
  • cd_nagios::nagios::objects::template_rules @@ -163,6 +178,11 @@
  • C
    • +
    • + cd_nagios::nagios::objects::add_contact + +
    • +
    • cd_nagios::nagios::objects::templates @@ -201,7 +221,7 @@ diff --git a/doc/file.README.html b/doc/file.README.html index 847e1e1..41ad619 100644 --- a/doc/file.README.html +++ b/doc/file.README.html @@ -145,14 +145,20 @@ parameters through external Puppet rules via define * manage Nagios commands through Puppet exports -* configure NRPE on clients (optional) -* configure firewall -(optional) -* configure selinux policies (optional) -* configure forwarding -http to https including accesing the /nagios url directly (optional) -* -manage TLS certificates through certbot (optional)

      +* manage Nagios template definitions through external Puppet +rules via define +* manage Nagios main contacts through Puppet exports. +Additional contacts can be created through external Puppet rules via +define, to avoid having to alter the module code. +* configure NRPE on +clients (optional) +* configure firewall (optional) +* configure selinux +policies (optional) +* configure forwarding http to https including accesing +the /nagios url directly (optional) +* manage TLS certificates through +certbot (optional)

      Service * manage Nagios service on server @@ -184,6 +190,14 @@ for selinux policy adjustments

    • cd_certbot to auto-manage TLS certificates (optional)

      +
    • +

      cd_stdlib or +puppetlabs +stdlib to facilitate concat

      +
    • +

      cd-concat or +puppetlabs +concat to concatenate configuration files from different sources.

    Deployment

    @@ -338,7 +352,7 @@ environments.

    diff --git a/doc/index.html b/doc/index.html index 43a545d..8873d0e 100644 --- a/doc/index.html +++ b/doc/index.html @@ -145,14 +145,20 @@ parameters through external Puppet rules via define * manage Nagios commands through Puppet exports -* configure NRPE on clients (optional) -* configure firewall -(optional) -* configure selinux policies (optional) -* configure forwarding -http to https including accesing the /nagios url directly (optional) -* -manage TLS certificates through certbot (optional)

    +* manage Nagios template definitions through external Puppet +rules via define +* manage Nagios main contacts through Puppet exports. +Additional contacts can be created through external Puppet rules via +define, to avoid having to alter the module code. +* configure NRPE on +clients (optional) +* configure firewall (optional) +* configure selinux +policies (optional) +* configure forwarding http to https including accesing +the /nagios url directly (optional) +* manage TLS certificates through +certbot (optional)

    Service * manage Nagios service on server @@ -184,6 +190,14 @@ for selinux policy adjustments

  • cd_certbot to auto-manage TLS certificates (optional)

    +
  • +

    cd_stdlib or +puppetlabs +stdlib to facilitate concat

    +
  • +

    cd-concat or +puppetlabs +concat to concatenate configuration files from different sources.

  • Deployment

    @@ -338,7 +352,7 @@ environments.

    diff --git a/doc/puppet_class_list.html b/doc/puppet_class_list.html index 4a0751b..ef22ac1 100644 --- a/doc/puppet_class_list.html +++ b/doc/puppet_class_list.html @@ -96,49 +96,70 @@ -
  • +
  • + +
  • + + +
  • -
  • +
  • + +
  • + + +
  • + +
  • + + +
  • -
  • +
  • -
  • +
  • -
  • +
  • -
  • +
  • -
  • +
  • diff --git a/doc/puppet_classes/cd_nagios.html b/doc/puppet_classes/cd_nagios.html index d3f995c..0b79a94 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 8b06151..bcd384a 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 72934df..6d6a6b6 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 0781ded..4155ac2 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 27c2b69..50981cb 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 a05034f..cba2537 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 4ec13a9..64bc256 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 75db801..e38567e 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_3Aadd_contact_rules.html b/doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Aadd_contact_rules.html new file mode 100644 index 0000000..4e4fe93 --- /dev/null +++ b/doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Aadd_contact_rules.html @@ -0,0 +1,238 @@ + + + + + + + Puppet Class: cd_nagios::nagios::objects::add_contact_rules + + — Documentation by YARD 0.9.9 + + + + + + + + + + + + + + + + + + + +
    + + +

    Puppet Class: cd_nagios::nagios::objects::add_contact_rules

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

    Summary

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

    Overview

    +
    +
    + +

    cd_nagios::nagios::objects::add_contact_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/. +cd_nagios::nagios::objects::add_contact +{ 'example_user': + ng_contact_name => 'example_user', + +ng_contact_alias => 'Example User', + ng_contact_groups => +'admins', + ng_contact_email => 'example@example.net', + }

    + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +
    +31
    +32
    +33
    +34
    +35
    +36
    +37
    +38
    +39
    +40
    +41
    +42
    +43
    +44
    +45
    +46
    +47
    +48
    +49
    +50
    +51
    +52
    +53
    +54
    +55
    +56
    +57
    +58
    +59
    +60
    +61
    +62
    +63
    +64
    +65
    +66
    +67
    +68
    +69
    +
    +
    # File 'manifests/nagios/objects/add_contact_rules.pp', line 31
    +
    +class cd_nagios::nagios::objects::add_contact_rules (
    +
    +) inherits cd_nagios::params {
    +
    +  if $::fqdn == $ng_nagios_server {
    +
    +    # manage /etc/nagios/conf.d/nagios_add_contacts.cfg
    +
    +    concat { $ng_target_add_contact:
    +      ensure    =>  present,
    +      path      =>  $ng_target_add_contact,
    +      owner     =>  $ng_user,
    +      group     =>  $ng_user,
    +      mode      =>  '0640',
    +      selrange  =>  s0,
    +      selrole   =>  object_r,
    +      seltype   =>  nagios_etc_t,
    +      seluser   =>  system_u,
    +      notify    =>  Service[$ng_service],
    +    }
    +
    +    # manage file header
    +
    +    concat::fragment { 'header':
    +      target    =>  $ng_target_add_contact,
    +      content   =>  template($ng_contacts_head_erb),
    +      order     =>  '000',
    +    }
    +
    +    # example rule for testing
    +
    +    cd_nagios::nagios::objects::add_contact { 'example_user':
    +      ng_contact_name   =>  'example_user',
    +      ng_contact_alias  =>  'Example User',
    +      ng_contact_groups =>  'admins',
    +      ng_contact_email  =>  'example@example.net',
    +    }
    +  }
    +}
    +
    +
    +
    + + + +
    + + \ No newline at end of file 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 4c5f71c..b6d49bd 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 @@ -595,7 +595,7 @@ class cd_nagios::nagios::objects::commands ( diff --git a/doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Aconfig.html b/doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Aconfig.html new file mode 100644 index 0000000..455ab7e --- /dev/null +++ b/doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Aconfig.html @@ -0,0 +1,174 @@ + + + + + + + Puppet Class: cd_nagios::nagios::objects::config + + — Documentation by YARD 0.9.9 + + + + + + + + + + + + + + + + + + + +
    + + +

    Puppet Class: cd_nagios::nagios::objects::config

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

    Summary

    + Class manages the nagios objects definitions. + +

    Overview

    +
    +
    + +

    cd_nagios::server::nagios::objects::config.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/.

    + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +
    +23
    +24
    +25
    +26
    +27
    +28
    +29
    +30
    +31
    +32
    +33
    +34
    +
    +
    # File 'manifests/nagios/objects/config.pp', line 23
    +
    +class cd_nagios::nagios::objects::config (
    +
    +) inherits cd_nagios::params {
    +
    +  if $::fqdn == $ng_nagios_server {
    +
    +    require cd_nagios::nagios::objects::commands
    +    require cd_nagios::nagios::objects::template_rules
    +    require cd_nagios::nagios::objects::add_contact_rules
    +
    +  }
    +}
    +
    +
    +
    + + + +
    + + \ No newline at end of file diff --git a/doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Acontacts.html b/doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Acontacts.html new file mode 100644 index 0000000..c6e9de2 --- /dev/null +++ b/doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Acontacts.html @@ -0,0 +1,290 @@ + + + + + + + Puppet Class: cd_nagios::nagios::objects::contacts + + — Documentation by YARD 0.9.9 + + + + + + + + + + + + + + + + + + + +
    + + +

    Puppet Class: cd_nagios::nagios::objects::contacts

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

    Summary

    + Class manages basic contacts known to NAGIOS through Puppet exports, +and populates /etc/nagios/conf.d/nagios_base_contacts.cfg. + +

    Overview

    +
    +
    + +

    cd_nagios::nagios::objects::contacts.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:

    + + +
    @@nagios_contact { 'admin':
    +  ensure              =>  present,
    +  alias               =>  'Nagios Admin',
    +  contact_name        =>  'admin',
    +  contactgroups       =>  'admins',
    +  email               =>  "admin@${::domain}",
    +  can_submit_commands =>  '1',
    +  register            =>  '1',
    +  use                 =>  'generic-contact',
    +  target              =>  $ng_target_base_contact,
    +  owner               =>  'root',
    +  group               =>  'nagios',
    +  mode                =>  '0664',
    +}
    + +
    + + +
    + + + + + +
    +
    +
    +
    +39
    +40
    +41
    +42
    +43
    +44
    +45
    +46
    +47
    +48
    +49
    +50
    +51
    +52
    +53
    +54
    +55
    +56
    +57
    +58
    +59
    +60
    +61
    +62
    +63
    +64
    +65
    +66
    +67
    +68
    +69
    +70
    +71
    +72
    +73
    +74
    +75
    +76
    +77
    +78
    +79
    +80
    +81
    +82
    +83
    +84
    +85
    +86
    +87
    +88
    +89
    +90
    +91
    +92
    +93
    +94
    +95
    +96
    +97
    +
    +
    # File 'manifests/nagios/objects/contacts.pp', line 39
    +
    +class cd_nagios::nagios::objects::contacts (
    +
    +
    +) inherits cd_nagios::params {
    +
    +  if $::fqdn == $ng_nagios_server {
    +
    +    #  admin contact
    +
    +    @@nagios_contact { 'admin':
    +      ensure              =>  present,
    +      alias               =>  'Nagios Admin',
    +      contact_name        =>  'admin',
    +      contactgroups       =>  'admins',
    +      email               =>  "admin@${::domain}",
    +      can_submit_commands =>  '1',
    +      register            =>  '1',
    +      use                 =>  'generic-contact',
    +      target              =>  $ng_target_base_contact,
    +      owner               =>  $ng_user,
    +      group               =>  $ng_user,
    +      mode                =>  '0640',
    +    }
    +
    +    # ops contact
    +
    +    @@nagios_contact { 'ops':
    +      ensure              =>  present,
    +      alias               =>  'Operations',
    +      contact_name        =>  'ops',
    +      contactgroups       =>  'operations',
    +      email               =>  "ops@${::domain}",
    +      can_submit_commands =>  '1',
    +      register            =>  '1',
    +      use                 =>  'generic-contact',
    +      target              =>  $ng_target_base_contact,
    +      owner               =>  $ng_user,
    +      group               =>  $ng_user,
    +      mode                =>  '0640',
    +    }
    +
    +   # support contact
    +
    +    @@nagios_contact { 'support':
    +      ensure              =>  present,
    +      alias               =>  'support',
    +      contact_name        =>  'support',
    +      contactgroups       =>  'support',
    +      email               =>  "support@${::domain}",
    +      can_submit_commands =>  '1',
    +      register            =>  '1',
    +      use                 =>  'generic-contact',
    +      target              =>  $ng_target_base_contact,
    +      owner               =>  $ng_user,
    +      group               =>  $ng_user,
    +      mode                =>  '0640',
    +    }
    +  }
    +}
    +
    +
    +
    + + + +
    + + \ No newline at end of file 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 index 9784b65..6f0c5c9 100644 --- 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 @@ -77,7 +77,8 @@

    Summary

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

    Overview

    @@ -143,7 +144,6 @@ ng_template_object_name => 'generic-contact',
     
     
    -27
     28
     29
     30
    @@ -216,10 +216,11 @@ ng_template_object_name =>  'generic-contact',
     97
     98
     99
    -100
    +100 +101 -
    # File 'manifests/nagios/objects/template_rules.pp', line 27
    +        
    # File 'manifests/nagios/objects/template_rules.pp', line 28
     
     class cd_nagios::nagios::objects::template_rules (
     
    @@ -302,7 +303,7 @@ class cd_nagios::nagios::objects::template_rules (
     
    diff --git a/doc/puppet_classes/cd_nagios_3A_3Aparams.html b/doc/puppet_classes/cd_nagios_3A_3Aparams.html index 8b7de87..9c7ed13 100644 --- a/doc/puppet_classes/cd_nagios_3A_3Aparams.html +++ b/doc/puppet_classes/cd_nagios_3A_3Aparams.html @@ -89,10 +89,16 @@ cd_nagios::server::access_rules
    + cd_nagios::nagios::objects::config
    + cd_nagios::nagios::objects::commands
    + cd_nagios::nagios::objects::contacts
    + cd_nagios::nagios::objects::template_rules
    + cd_nagios::nagios::objects::add_contact_rules
    + @@ -5207,7 +5213,10 @@ up

    980 981 982 -983 +983 +984 +985 +986
    # File 'manifests/params.pp', line 646
    @@ -5528,7 +5537,7 @@ $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_target_templates      = "${ng_conf_d_dir}/nagios_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"
    @@ -5540,7 +5549,10 @@ $ng_target_hostesc        = "${ng_conf_d_dir}/nagios_hostescalation.cfg&quo
     $ng_target_hostext        = "${ng_conf_d_dir}/nagios_hostextinfo.cfg"
     $ng_target_service        = "${ng_conf_d_dir}/nagios_service.cfg"
     $ng_target_servicegroup   = "${ng_conf_d_dir}/nagios_servicegroup.cfg"
    -$ng_target_contact        = "${ng_conf_d_dir}/nagios_contact.cfg"
    +$ng_target_base_contact   = "${ng_conf_d_dir}/nagios_base_contact.cfg"
    +$ng_target_add_contact    = "${ng_conf_d_dir}/nagios_add_contact.cfg"
    +$ng_contacts_head_erb     = 'cd_nagios/nagios/contacts_cfg_head.erb'
    +$ng_contact_rule_erb      = 'cd_nagios/nagios/contact_cfg_rule.erb'
     $ng_target_contactgroup   = "${ng_conf_d_dir}/nagios_contactgroup.cfg"
     $ng_target_command        = "${ng_conf_d_dir}/nagios_command.cfg"
     
    @@ -5557,7 +5569,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 a7b27c0..84db028 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 461c1a9..72b76b8 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 948a9c2..28df8a5 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 c4b28b2..2c40cda 100644
    --- a/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Aservice.html
    +++ b/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Aservice.html
    @@ -192,8 +192,7 @@ href="http://www.gnu.org/licenses">www.gnu.org/licenses/.

    83 84 85 -86 -87
    +86
    # File 'manifests/server/service.pp', line 23
    @@ -206,8 +205,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
    +    require cd_nagios::nagios::objects::config
     
         service { $ng_service:
           ensure      => running,
    @@ -270,7 +268,7 @@ class cd_nagios::server::service (
     
     
           
    diff --git a/doc/puppet_defined_type_list.html b/doc/puppet_defined_type_list.html
    index cf5fe31..c86cc98 100644
    --- a/doc/puppet_defined_type_list.html
    +++ b/doc/puppet_defined_type_list.html
    @@ -40,14 +40,21 @@
           
      -
    • +
    • + +
    • + + +
    • -
    • +
    • diff --git a/doc/puppet_defined_types/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Aadd_contact.html b/doc/puppet_defined_types/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Aadd_contact.html new file mode 100644 index 0000000..3c44be9 --- /dev/null +++ b/doc/puppet_defined_types/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Aadd_contact.html @@ -0,0 +1,235 @@ + + + + + + + Defined Type: cd_nagios::nagios::objects::add_contact + + — Documentation by YARD 0.9.9 + + + + + + + + + + + + + + + + + + + +
      + + +

      Defined Type: cd_nagios::nagios::objects::add_contact

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

      Summary

      + Define manages additional contacts known to NAGIOS through external +Puppet rules, and populates /etc/nagios/conf.d/nagios_add_contact.cfg. + +

      Overview

      +
      +
      + +

      cd_nagios::nagios::objects::add_contact.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_contact_name + + + (Any) + + + (defaults to: undef) + + +
      • + +
      • + + ng_contact_use + + + (Any) + + + (defaults to: 'generic-contact') + + +
      • + +
      • + + ng_contact_alias + + + (Any) + + + (defaults to: undef) + + +
      • + +
      • + + ng_contact_email + + + (Any) + + + (defaults to: undef) + + +
      • + +
      • + + ng_contact_groups + + + (Any) + + + (defaults to: undef) + + +
      • + +
      + + +
      + + + + + +
      +
      +
      +
      +25
      +26
      +27
      +28
      +29
      +30
      +31
      +32
      +33
      +34
      +35
      +
      +
      # File 'manifests/nagios/objects/add_contact.pp', line 25
      +
      +define cd_nagios::nagios::objects::add_contact (
      +
      +$ng_contact_name    = undef,
      +$ng_contact_use     = 'generic-contact',
      +$ng_contact_alias   = undef,
      +$ng_contact_email   = undef,
      +$ng_contact_groups  = undef,
      +
      +) {
      +
      +}
      +
      +
      +
      + + + +
      + + \ No newline at end of file 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 index ac06627..8ca4aca 100644 --- 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 @@ -180,7 +180,7 @@ notifications for service events, i.e.
    • - ng_svc_notification_period + ng_host_notification_period (string) @@ -405,8 +405,6 @@ Valid options are 0 and (string) - (defaults to: '1') - —
      @@ -591,6 +589,22 @@ maximal.

    • +
    • + + ng_check_command + + + (string) + + + + — +
      +

      The command to use for host checks.

      +
      + +
    • +
    • ng_notification_options @@ -791,20 +805,7 @@ until a hard state can be determined.

    • - ng_host_notification_period - - - (Any) - - - (defaults to: '24x7') - - -
    • - -
    • - - ng_check_command + ng_host_check_command (Any) @@ -825,7 +826,6 @@ until a hard state can be determined.

       
       
      -101
       102
       103
       104
      @@ -877,7 +877,7 @@ until a hard state can be determined.

      150
      -
      # File 'manifests/nagios/objects/templates.pp', line 101
      +        
      # File 'manifests/nagios/objects/templates.pp', line 102
       
       define cd_nagios::nagios::objects::templates (
       $ng_template_object               = undef,
      @@ -893,7 +893,6 @@ $ng_template_object_use           = undef,
       $ng_notifications_enabled         = '1',
       $ng_event_handler_enabled         = '1',
       $ng_flap_detection_enabled        = '1',
      -$ng_failure_prediction_enabled    = '1',
       $ng_process_perf_data             = '1',
       $ng_retain_status_information     = '1',
       $ng_retain_nonstatus_information  = '1',
      @@ -903,7 +902,7 @@ $ng_check_period                  = '24x7',
       $ng_check_interval                = '5',
       $ng_retry_interval                = '1',
       $ng_max_check_attempts            = '10',
      -$ng_check_command                 = 'check-host-alive',
      +$ng_host_check_command            = 'check-host-alive',
       $ng_notification_options          = undef,
       $ng_contact_groups                = 'admins',
       $ng_active_checks_enabled         = '1',
      @@ -936,7 +935,7 @@ $ng_templates_rule_erb  = $::cd_nagios::params::ng_templates_rule_erb
       
       
             
      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 ba71a9b..0268e63 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 5554661..52c90c4 100644
      --- a/doc/top-level-namespace.html
      +++ b/doc/top-level-namespace.html
      @@ -90,7 +90,7 @@