Files
confdroid_nagios/manifests/nagios/objects/template_rules.pp
Arne Teuke 6ee49a5e33 fixed typo
2017-07-26 13:47:45 +01:00

102 lines
3.7 KiB
Puppet

## 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 <http://www.gnu.org/licenses/>.
# @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',
# }
################################################################################
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,
notify => Service[$ng_service],
}
concat::fragment { 'template_header':
target => $ng_target_templates,
content => template($ng_templates_head_erb),
order => '000',
}
# basic templates
cd_nagios::nagios::objects::templates { 'generic contact':
ng_template_object => 'contact',
ng_template_object_name => 'generic-contact',
}
cd_nagios::nagios::objects::templates { 'generic-host':
ng_template_object => 'host',
ng_template_object_name => 'generic-host',
}
cd_nagios::nagios::objects::templates { 'linux-server':
ng_template_object => 'host',
ng_template_object_name => 'linux-server',
ng_template_object_use => 'generic-host',
ng_notification_options => 'd,u,r',
}
cd_nagios::nagios::objects::templates { 'windows-server':
ng_template_object => 'host',
ng_template_object_name => 'windows-server',
ng_template_object_use => 'generic-host',
ng_notification_options => 'd,u,r',
}
cd_nagios::nagios::objects::templates { 'generic-switch':
ng_template_object => 'host',
ng_template_object_name => 'generic-switch',
ng_template_object_use => 'generic-host',
ng_notification_options => 'd,u,r',
}
cd_nagios::nagios::objects::templates { 'generic-printer':
ng_template_object => 'host',
ng_template_object_name => 'generic-printer',
ng_template_object_use => 'generic-host',
ng_notification_options => 'd,u,r',
}
cd_nagios::nagios::objects::templates { 'generic-service':
ng_template_object => 'service',
ng_template_object_name => 'generic-service',
ng_max_check_attempts => '3',
ng_notification_options => 'w,u,c,r',
}
cd_nagios::nagios::objects::templates { 'local-service':
ng_template_object => 'service',
ng_template_object_name => 'local-service',
ng_max_check_attempts => '4',
}
}
}