summaryrefslogtreecommitdiff
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
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.
-rw-r--r--files/configs/CentOS/nagios.cfg18
-rw-r--r--files/configs/Debian/nagios.cfg16
-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
6 files changed, 91 insertions, 144 deletions
diff --git a/files/configs/CentOS/nagios.cfg b/files/configs/CentOS/nagios.cfg
index 1354bf8..fc6a391 100644
--- a/files/configs/CentOS/nagios.cfg
+++ b/files/configs/CentOS/nagios.cfg
@@ -31,9 +31,21 @@ log_file=/var/log/nagios/nagios.log
# separate from host and contact definitions...
# Puppet-managed configuration files
-cfg_dir=/etc/nagios/conf.d
-
-
+cfg_file=/etc/nagios/nagios_command.cfg
+cfg_file=/etc/nagios/nagios_contact.cfg
+cfg_file=/etc/nagios/nagios_contactgroup.cfg
+cfg_file=/etc/nagios/nagios_host.cfg
+cfg_file=/etc/nagios/nagios_hostdependency.cfg
+cfg_file=/etc/nagios/nagios_hostescalation.cfg
+cfg_file=/etc/nagios/nagios_hostextinfo.cfg
+cfg_file=/etc/nagios/nagios_hostgroup.cfg
+cfg_file=/etc/nagios/nagios_hostgroupescalation.cfg
+cfg_file=/etc/nagios/nagios_service.cfg
+cfg_file=/etc/nagios/nagios_servicedependency.cfg
+cfg_file=/etc/nagios/nagios_serviceescalation.cfg
+cfg_file=/etc/nagios/nagios_serviceextinfo.cfg
+cfg_file=/etc/nagios/nagios_servicegroup.cfg
+cfg_file=/etc/nagios/nagios_timeperiod.cfg
# OBJECT CACHE FILE
# This option determines where object definitions are cached when
diff --git a/files/configs/Debian/nagios.cfg b/files/configs/Debian/nagios.cfg
index 8eae393..dca295c 100644
--- a/files/configs/Debian/nagios.cfg
+++ b/files/configs/Debian/nagios.cfg
@@ -23,7 +23,21 @@ log_file=/var/log/nagios3/nagios.log
cfg_file=/etc/nagios3/commands.cfg
# Puppet-managed configuration files
-cfg_dir=/etc/nagios3/conf.d
+cfg_file=/etc/nagios3/nagios_command.cfg
+cfg_file=/etc/nagios3/nagios_contact.cfg
+cfg_file=/etc/nagios3/nagios_contactgroup.cfg
+cfg_file=/etc/nagios3/nagios_host.cfg
+cfg_file=/etc/nagios3/nagios_hostdependency.cfg
+cfg_file=/etc/nagios3/nagios_hostescalation.cfg
+cfg_file=/etc/nagios3/nagios_hostextinfo.cfg
+cfg_file=/etc/nagios3/nagios_hostgroup.cfg
+cfg_file=/etc/nagios3/nagios_hostgroupescalation.cfg
+cfg_file=/etc/nagios3/nagios_service.cfg
+cfg_file=/etc/nagios3/nagios_servicedependency.cfg
+cfg_file=/etc/nagios3/nagios_serviceescalation.cfg
+cfg_file=/etc/nagios3/nagios_serviceextinfo.cfg
+cfg_file=/etc/nagios3/nagios_servicegroup.cfg
+cfg_file=/etc/nagios3/nagios_timeperiod.cfg
# Debian also defaults to using the check commands defined by the debian
# nagios-plugins package
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,