diff --git a/manifests/nagios/config.pp b/manifests/nagios/config.pp index 1c936e3..400431f 100644 --- a/manifests/nagios/config.pp +++ b/manifests/nagios/config.pp @@ -12,7 +12,7 @@ class confdroid_nagios::nagios::config ( require confdroid_nagios::nagios::objects::add_contact_rules require confdroid_nagios::nagios::objects::add_contactgroups_rules require confdroid_nagios::nagios::objects::add_hostgroup_rules - #require confdroid_nagios::nagios::objects::add_servicegroup_rules + require confdroid_nagios::nagios::objects::add_servicegroup_rules #require confdroid_nagios::nagios::objects::add_timeperiod_rules require confdroid_nagios::nagios::resources::resource } diff --git a/manifests/nagios/objects/add_servicegroup_rules.pp b/manifests/nagios/objects/add_servicegroup_rules.pp new file mode 100644 index 0000000..9181645 --- /dev/null +++ b/manifests/nagios/objects/add_servicegroup_rules.pp @@ -0,0 +1,39 @@ +## confdroid_nagios::nagios::objects::add_servicegroup_rules.pp +# Module name: confdroid_nagios +# Author: 12ww1160 (12ww1160@confdroid.com) +# @summary Class manages /etc/nagios_conf.d/nagios_servicegroups_add.cfg and +# additional servicegroups through external Puppet rules via define. +# @example +# confdroid_nagios::nagios::objects::add_servicegroups { 'example_servicegroup': +# ng_servicegroup_name => 'example_servicegroup', +# ng_servicegroup_alias => 'Example Servicegroup', +# } +################################################################################ +class confdroid_nagios::nagios::objects::add_servicegroup_rules ( + +) inherits confdroid_nagios::params { + if $ng_nagios_server == $fqdn { + # manage /etc/nagios_conf.d/nagios_servicegroups_add.cfg + + concat { $ng_tgt_servicegroup_add: + ensure => present, + path => $ng_tgt_servicegroup_add, + owner => 'nagios', + group => 'nagios', + mode => '0640', + selrange => s0, + selrole => object_r, + seltype => nagios_etc_t, + seluser => system_u, + notify => Service[$ng_nagios_service], + } + + # manage file header + + concat::fragment { 'servicegroups_header': + target => $ng_tgt_servicegroup_add, + content => template($ng_tgt_svcgrp_head_erb), + order => '000', + } + } +} diff --git a/manifests/nagios/objects/add_servicegroups.pp b/manifests/nagios/objects/add_servicegroups.pp new file mode 100644 index 0000000..9729688 --- /dev/null +++ b/manifests/nagios/objects/add_servicegroups.pp @@ -0,0 +1,35 @@ +## confdroid_nagios::nagios::objects::add_servicegroups.pp +# Module name: confdroid_nagios +# Author: 12ww1160 (12ww1160@confdroid.com) +# # License: +# @summary define populates /etc/nagios/conf.d/nagios_servicegroups_add through +# external Puppet rules. +# @example +# confdroid_nagios::nagios::objects::add_servicegroups { 'example_servicegroup': +# ng_servicegroup_name => 'example_servicegroup', +# ng_servicegroup_alias => 'Example servicegroup', +# } +# @param [string] ng_servicegroup_name Specify the servicegroup short name +# @param [string] ng_servicegroup_alias Specify the servicegroup alias +# (long name). +# @param [string] ng_servicegroup_register Whether you want to register the +# servicegroup +############################################################################### +define confdroid_nagios::nagios::objects::add_servicegroups ( + + Optional[String] $ng_servicegroup_name = undef, + Optional[String] $ng_servicegroup_alias = undef, + String $ng_servicegroup_register = '1', + +) { + $ng_nagios_server = $confdroid_nagios::params::ng_nagios_server + $ng_tgt_servicegroup_add = $confdroid_nagios::params::ng_tgt_servicegroup_add + $ng_tgt_svcgrp_rule_erb = $confdroid_nagios::params::ng_tgt_svcgrp_rule_erb + + if $ng_nagios_server == $fqdn { + concat::fragment { $name: + target => $ng_tgt_servicegroup_add, + content => template($ng_tgt_svcgrp_rule_erb), + } + } +} diff --git a/manifests/params.pp b/manifests/params.pp index d5da578..2ad0182 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -170,7 +170,7 @@ class confdroid_nagios::params ( $os_release = $facts['os']['release']['major'] # service - $ng_nagios_service = $ng_users + $ng_nagios_service = 'nagios' # directories $ng_main_dir = '/etc/nagios'