OP#436 add nagios contacts
This commit is contained in:
@@ -10,7 +10,7 @@ class confdroid_nagios::nagios::config (
|
||||
require confdroid_nagios::nagios::objects::commands
|
||||
#require confdroid_nagios::nagios::objects::template_rules
|
||||
#require confdroid_nagios::nagios::objects::contacts
|
||||
#require confdroid_nagios::nagios::objects::add_contact_rules
|
||||
require confdroid_nagios::nagios::objects::add_contact_rules
|
||||
#require confdroid_nagios::nagios::objects::contactgroups
|
||||
#require confdroid_nagios::nagios::objects::add_contactgroups_rules
|
||||
#require confdroid_nagios::nagios::objects::hostgroups
|
||||
|
||||
38
manifests/nagios/objects/add_contact.pp
Normal file
38
manifests/nagios/objects/add_contact.pp
Normal file
@@ -0,0 +1,38 @@
|
||||
## confdroid_nagios::nagios::objects::add_contact.pp
|
||||
# Module name: confdroid_nagios
|
||||
# Author: 12ww1160 (12ww1160@confdroid.com)
|
||||
# @summary Define manages additional contacts known to NAGIOS through external
|
||||
# Puppet rules, and populates /etc/nagios/conf.d/nagios_add_contact.cfg.
|
||||
# @example
|
||||
# confdroid_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',
|
||||
# }
|
||||
# @param [string] ng_contact_name Specify the contact short name.
|
||||
# @param [string] ng_contact_use which contact template to use
|
||||
# @param [string] ng_contact_alias Specify the contact alias (long name).
|
||||
# @param [string] ng_contact_email Specify the contact email address.
|
||||
# @param [string] ng_contact_groups specify the contact group for the contact.
|
||||
################################################################################
|
||||
define confdroid_nagios::nagios::objects::add_contact (
|
||||
|
||||
Optional[String] $ng_contact_name = undef,
|
||||
String $ng_contact_use = 'generic-contact',
|
||||
Optional[String] $ng_contact_alias = undef,
|
||||
Optional[String] $ng_contact_email = undef,
|
||||
Optional[String] $ng_contact_groups = undef,
|
||||
|
||||
) {
|
||||
$ng_nagios_server = $confdroid_nagios::params::ng_nagios_server
|
||||
$ng_target_add_contact = $confdroid_nagios::params::ng_target_add_contact
|
||||
$ng_contacts_rule_erb = $confdroid_nagios::params::ng_contacts_rule_erb
|
||||
|
||||
if $ng_nagios_server == $fqdn {
|
||||
concat::fragment { $name:
|
||||
target => $ng_target_add_contact,
|
||||
content => template($ng_contacts_rule_erb),
|
||||
}
|
||||
}
|
||||
}
|
||||
40
manifests/nagios/objects/add_contact_rules.pp
Normal file
40
manifests/nagios/objects/add_contact_rules.pp
Normal file
@@ -0,0 +1,40 @@
|
||||
## confdroid_nagios::nagios::objects::add_contact_rules.pp
|
||||
# Module name: confdroid_nagios
|
||||
# Author: 12ww1160 (12ww1160@confdroid.com)
|
||||
# @summary Class manages /etc/nagios/conf.d/nagios_add_contact.cfg through
|
||||
# concat.
|
||||
# @example confdroid_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 confdroid_nagios::nagios::objects::add_contact_rules (
|
||||
|
||||
) inherits confdroid_nagios::params {
|
||||
if $ng_nagios_server == $fqdn {
|
||||
# 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 { 'contact_header':
|
||||
target => $ng_target_add_contact,
|
||||
content => template($ng_contacts_head_erb),
|
||||
order => '000',
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -13,7 +13,7 @@ class confdroid_nagios::nagios::objects::commands (
|
||||
ensure => present,
|
||||
command_name => 'notify-host-by-email',
|
||||
command_line => '/usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTADDRESS$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTADDRESS$ is $HOSTSTATE$ **" $CONTACTEMAIL$',
|
||||
owner => 'nagions',
|
||||
owner => 'nagios',
|
||||
group => 'nagios',
|
||||
mode => '0640',
|
||||
target => $ng_target_command,
|
||||
|
||||
@@ -77,6 +77,8 @@ class confdroid_nagios::params (
|
||||
# files
|
||||
$ng_nagios_cfg_file = "${ng_main_dir}/nagios.cfg"
|
||||
$ng_nagios_cfg_erb = 'confdroid_nagios/nagios/nagios_cfg.erb'
|
||||
$ng_cgi_cfg_file = "${ng_main_dir}/cgi.cfg"
|
||||
$ng_cgi_cfg_erb = 'confdroid_nagios/nagios/cgi_cfg.erb'
|
||||
|
||||
# nagios
|
||||
$ng_target_templates = "${ng_conf_d_dir}/nagios_templates.cfg"
|
||||
@@ -117,9 +119,6 @@ class confdroid_nagios::params (
|
||||
$ng_resource_erb = 'confdroid_nagios/nagios/resource_cfg.erb'
|
||||
|
||||
## old
|
||||
$ng_main_config = "${ng_main_dir}/nagios.cfg"
|
||||
$ng_cgi_cfg_file = "${ng_main_dir}/cgi.cfg"
|
||||
$ng_cgi_cfg_erb = 'confdroid_nagios/nagios/cgi_cfg.erb'
|
||||
$ng_taccgi_erb = 'confdroid_nagios/selinux/taccgi.erb'
|
||||
$ng_statcgi_erb = 'confdroid_nagios/selinux/statuscgi.erb'
|
||||
$ng_statdat_erb = 'confdroid_nagios/selinux/statusdat.erb'
|
||||
|
||||
Reference in New Issue
Block a user