summaryrefslogtreecommitdiff
path: root/manifests
diff options
context:
space:
mode:
authormh <mh@immerda.ch>2014-10-05 12:36:29 +0200
committermh <mh@immerda.ch>2014-10-05 12:36:29 +0200
commitb52d91b8fcabf0c6b1cd648cf996b7468be60969 (patch)
tree921d17303860ed9e9b7d6f1847b90a04e55ebb7c /manifests
parentb1a10d01e4c4682540eab75541845514ea8c4dd0 (diff)
get auto purging working again
That purging resources work correctly, the config files must be at the location that the nagios providers have internally, which is at /etc/nagios/<name>.cfg To ease the config file we used the cfg_dir option so far, which we can't anymore and hence this change requires adoption of your site modules. But auto-purging resources will then finally work.
Diffstat (limited to 'manifests')
-rw-r--r--manifests/base.pp176
-rw-r--r--manifests/defaults/templates.pp15
-rw-r--r--manifests/defaults/vars.pp3
-rw-r--r--manifests/pnp4nagios.pp7
4 files changed, 61 insertions, 140 deletions
diff --git a/manifests/base.pp b/manifests/base.pp
index b93150a..c0ebf77 100644
--- a/manifests/base.pp
+++ b/manifests/base.pp
@@ -63,16 +63,15 @@ class nagios::base {
owner => root,
group => nagios,
mode => '0640';
- 'nagios_confd':
- ensure => directory,
- path => "${cfg_dir}/conf.d",
- purge => true,
- recurse => true,
- notify => Service['nagios'],
- owner => root,
- group => nagios,
- mode => '0750';
}
+
+ if $cfg_dir == '/etc/nagios3' {
+ file{'/etc/nagios':
+ ensure => link,
+ target => $cfg_dir,
+ }
+ }
+
Nagios_command <<||>>
Nagios_contactgroup <<||>>
Nagios_contact <<||>>
@@ -87,177 +86,94 @@ class nagios::base {
Nagios_serviceextinfo <<||>>
Nagios_service <<||>>
Nagios_timeperiod <<||>>
- if $nagios::purge_resources {
- resources {
- [
- 'nagios_command',
- 'nagios_contactgroup',
- 'nagios_contact',
- 'nagios_hostdependency',
- 'nagios_hostescalation',
- 'nagios_hostextinfo',
- 'nagios_hostgroup',
- 'nagios_host',
- 'nagios_servicedependency',
- 'nagios_serviceescalation',
- 'nagios_servicegroup',
- 'nagios_serviceextinfo',
- 'nagios_service',
- 'nagios_timeperiod',
- ]:
- notify => Service['nagios'],
- purge => true;
- }
- }
Nagios_command <||> {
- target => "${cfg_dir}/conf.d/nagios_command.cfg",
- require => File['nagios_confd'],
notify => Service['nagios'],
}
Nagios_contact <||> {
- target => "${cfg_dir}/conf.d/nagios_contact.cfg",
- require => File['nagios_confd'],
notify => Service['nagios'],
}
Nagios_contactgroup <||> {
- target => "${cfg_dir}/conf.d/nagios_contactgroup.cfg",
- require => File['nagios_confd'],
notify => Service['nagios'],
}
Nagios_host <||> {
- target => "${cfg_dir}/conf.d/nagios_host.cfg",
- require => File['nagios_confd'],
notify => Service['nagios'],
}
Nagios_hostdependency <||> {
- target => "${cfg_dir}/conf.d/nagios_hostdependency.cfg",
notify => Service['nagios'],
}
Nagios_hostescalation <||> {
- target => "${cfg_dir}/conf.d/nagios_hostescalation.cfg",
notify => Service['nagios'],
}
Nagios_hostextinfo <||> {
- target => "${cfg_dir}/conf.d/nagios_hostextinfo.cfg",
- require => File['nagios_confd'],
notify => Service['nagios'],
}
Nagios_hostgroup <||> {
- target => "${cfg_dir}/conf.d/nagios_hostgroup.cfg",
- require => File['nagios_confd'],
notify => Service['nagios'],
}
Nagios_service <||> {
- target => "${cfg_dir}/conf.d/nagios_service.cfg",
- require => File['nagios_confd'],
notify => Service['nagios'],
}
Nagios_servicegroup <||> {
- target => "${cfg_dir}/conf.d/nagios_servicegroup.cfg",
notify => Service['nagios'],
}
Nagios_servicedependency <||> {
- target => "${cfg_dir}/conf.d/nagios_servicedependency.cfg",
- require => File['nagios_confd'],
notify => Service['nagios'],
}
Nagios_serviceescalation <||> {
- target => "${cfg_dir}/conf.d/nagios_serviceescalation.cfg",
- require => File['nagios_confd'],
notify => Service['nagios'],
}
Nagios_serviceextinfo <||> {
- target => "${cfg_dir}/conf.d/nagios_serviceextinfo.cfg",
- require => File['nagios_confd'],
notify => Service['nagios'],
}
Nagios_timeperiod <||> {
- target => "${cfg_dir}/conf.d/nagios_timeperiod.cfg",
- require => File['nagios_confd'],
notify => Service['nagios'],
}
file{
- # manage nagios cfg files
- # must be defined after exported resource overrides and cfg file defs
- 'nagios_cfgdir':
- ensure => directory,
- path => $cfg_dir,
- recurse => true,
- purge => true,
- force => true,
- notify => Service['nagios'],
- owner => root,
- group => root,
- mode => '0755';
- ["${cfg_dir}/conf.d/nagios_command.cfg",
- "${cfg_dir}/conf.d/nagios_contact.cfg",
- "${cfg_dir}/conf.d/nagios_contactgroup.cfg",
- "${cfg_dir}/conf.d/nagios_host.cfg",
- "${cfg_dir}/conf.d/nagios_hostdependency.cfg",
- "${cfg_dir}/conf.d/nagios_hostescalation.cfg",
- "${cfg_dir}/conf.d/nagios_hostextinfo.cfg",
- "${cfg_dir}/conf.d/nagios_hostgroup.cfg",
- "${cfg_dir}/conf.d/nagios_hostgroupescalation.cfg",
- "${cfg_dir}/conf.d/nagios_service.cfg",
- "${cfg_dir}/conf.d/nagios_servicedependency.cfg",
- "${cfg_dir}/conf.d/nagios_serviceescalation.cfg",
- "${cfg_dir}/conf.d/nagios_serviceextinfo.cfg",
- "${cfg_dir}/conf.d/nagios_servicegroup.cfg",
- "${cfg_dir}/conf.d/nagios_timeperiod.cfg" ]:
+ ["${cfg_dir}/nagios_command.cfg",
+ "${cfg_dir}/nagios_contact.cfg",
+ "${cfg_dir}/nagios_contactgroup.cfg",
+ "${cfg_dir}/nagios_host.cfg",
+ "${cfg_dir}/nagios_hostdependency.cfg",
+ "${cfg_dir}/nagios_hostescalation.cfg",
+ "${cfg_dir}/nagios_hostextinfo.cfg",
+ "${cfg_dir}/nagios_hostgroup.cfg",
+ "${cfg_dir}/nagios_hostgroupescalation.cfg",
+ "${cfg_dir}/nagios_service.cfg",
+ "${cfg_dir}/nagios_servicedependency.cfg",
+ "${cfg_dir}/nagios_serviceescalation.cfg",
+ "${cfg_dir}/nagios_serviceextinfo.cfg",
+ "${cfg_dir}/nagios_servicegroup.cfg",
+ "${cfg_dir}/nagios_timeperiod.cfg" ]:
ensure => file,
replace => false,
notify => Service['nagios'],
owner => root,
group => 0,
mode => '0644';
- # unfortuantely resource purging only works on the default path and
- # because we changed it above -> link the default path
- "${cfg_dir}/nagios_command.cfg":
- ensure => link,
- target => "${cfg_dir}/conf.d/nagios_command.cfg";
- "${cfg_dir}/nagios_contact.cfg":
- ensure => link,
- target => "${cfg_dir}/conf.d/nagios_contact.cfg";
- "${cfg_dir}/nagios_contactgroup.cfg":
- ensure => link,
- target => "${cfg_dir}/conf.d/nagios_contactgroup.cfg";
- "${cfg_dir}/nagios_host.cfg":
- ensure => link,
- target => "${cfg_dir}/conf.d/nagios_host.cfg";
- "${cfg_dir}/nagios_hostdependency.cfg":
- ensure => link,
- target => "${cfg_dir}/conf.d/nagios_hostdependency.cfg";
- "${cfg_dir}/nagios_hostescalation.cfg":
- ensure => link,
- target => "${cfg_dir}/conf.d/nagios_hostescalation.cfg";
- "${cfg_dir}/nagios_hostextinfo.cfg":
- ensure => link,
- target => "${cfg_dir}/conf.d/nagios_hostextinfo.cfg";
- "${cfg_dir}/nagios_hostgroup.cfg":
- ensure => link,
- target => "${cfg_dir}/conf.d/nagios_hostgroup.cfg";
- "${cfg_dir}/nagios_hostgroupescalation.cfg":
- ensure => link,
- target => "${cfg_dir}/conf.d/nagios_hostgroupescalation.cfg";
- "${cfg_dir}/nagios_service.cfg":
- ensure => link,
- target => "${cfg_dir}/conf.d/nagios_service.cfg";
- "${cfg_dir}/nagios_servicedependency.cfg":
- ensure => link,
- target => "${cfg_dir}/conf.d/nagios_servicedependency.cfg";
- "${cfg_dir}/nagios_serviceescalation.cfg":
- ensure => link,
- target => "${cfg_dir}/conf.d/nagios_serviceescalation.cfg";
- "${cfg_dir}/nagios_serviceextinfo.cfg":
- ensure => link,
- target => "${cfg_dir}/conf.d/nagios_serviceextinfo.cfg";
- "${cfg_dir}/nagios_servicegroup.cfg":
- ensure => link,
- target => "${cfg_dir}/conf.d/nagios_servicegroup.cfg";
- "${cfg_dir}/nagios_timeperiod.cfg":
- ensure => link,
- target => "${cfg_dir}/conf.d/nagios_timeperiod.cfg";
+ }
+
+ if $nagios::purge_resources {
+ resources {
+ [
+ 'nagios_command',
+ 'nagios_contactgroup',
+ 'nagios_contact',
+ 'nagios_hostdependency',
+ 'nagios_hostescalation',
+ 'nagios_hostextinfo',
+ 'nagios_hostgroup',
+ 'nagios_host',
+ 'nagios_servicedependency',
+ 'nagios_serviceescalation',
+ 'nagios_servicegroup',
+ 'nagios_serviceextinfo',
+ 'nagios_service',
+ 'nagios_timeperiod',
+ ]:
+ notify => Service['nagios'],
+ purge => true;
+ }
}
}
diff --git a/manifests/defaults/templates.pp b/manifests/defaults/templates.pp
index 9711dd4..5158189 100644
--- a/manifests/defaults/templates.pp
+++ b/manifests/defaults/templates.pp
@@ -1,14 +1,17 @@
+# manage nagios_templates
class nagios::defaults::templates {
include nagios::defaults::vars
file { 'nagios_templates':
- path => "${nagios::defaults::vars::int_cfgdir}/conf.d/nagios_templates.cfg",
- source => [ "puppet:///modules/site_nagios/configs/${::fqdn}/nagios_templates.cfg",
+ path => "${nagios::defaults::vars::int_cfgdir}/nagios_templates.cfg",
+ source => [ "puppet:///modules/site_nagios/configs/${::fqdn}/nagios_templates.cfg",
"puppet:///modules/site_nagios/configs/${::operatingsystem}/nagios_templates.cfg",
- "puppet:///modules/site_nagios/configs/nagios_templates.cfg",
+ 'puppet:///modules/site_nagios/configs/nagios_templates.cfg',
"puppet:///modules/nagios/configs/${::operatingsystem}/nagios_templates.cfg",
- "puppet:///modules/nagios/configs/nagios_templates.cfg" ],
- notify => Service['nagios'],
- mode => 0644, owner => root, group => root;
+ 'puppet:///modules/nagios/configs/nagios_templates.cfg' ],
+ notify => Service['nagios'],
+ owner => root,
+ group => root,
+ mode => '0644';
}
}
diff --git a/manifests/defaults/vars.pp b/manifests/defaults/vars.pp
index 87f41f8..e1a6224 100644
--- a/manifests/defaults/vars.pp
+++ b/manifests/defaults/vars.pp
@@ -1,7 +1,8 @@
+# some default vars
class nagios::defaults::vars {
case $nagios::cfgdir {
'': { $int_cfgdir = $::operatingsystem ? {
- centos => '/etc/nagios/',
+ centos => '/etc/nagios',
default => '/etc/nagios3'
}
}
diff --git a/manifests/pnp4nagios.pp b/manifests/pnp4nagios.pp
index 5ade74f..3faaae3 100644
--- a/manifests/pnp4nagios.pp
+++ b/manifests/pnp4nagios.pp
@@ -1,3 +1,4 @@
+# manage pnp4nagios
class nagios::pnp4nagios {
include nagios::defaults::pnp4nagios
@@ -10,7 +11,7 @@ class nagios::pnp4nagios {
# see http://projects.reductivelabs.com/issues/1180 for this limitation
file { 'pnp4nagios-templates.cfg':
- path => "${nagios::defaults::vars::int_cfgdir}/conf.d/pnp4nagios-templates.cfg",
+ path => "${nagios::defaults::vars::int_cfgdir}/pnp4nagios-templates.cfg",
source => [ 'puppet:///modules/site_nagios/pnp4nagios/pnp4nagios-templates.cfg',
'puppet:///modules/nagios/pnp4nagios/pnp4nagios-templates.cfg' ],
mode => '0644',
@@ -21,8 +22,8 @@ class nagios::pnp4nagios {
file { 'apache.conf':
path => '/etc/pnp4nagios/apache.conf',
- source => [ 'puppet:///modules/site_nagios/pnp4nagios/apache.conf',
- 'puppet:///modules/nagios/pnp4nagios/apache.conf' ],
+ source => ['puppet:///modules/site_nagios/pnp4nagios/apache.conf',
+ 'puppet:///modules/nagios/pnp4nagios/apache.conf' ],
mode => '0644',
owner => root,
group => root,