From b52d91b8fcabf0c6b1cd648cf996b7468be60969 Mon Sep 17 00:00:00 2001 From: mh Date: Sun, 5 Oct 2014 12:36:29 +0200 Subject: 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/.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. --- manifests/base.pp | 176 +++++++++++----------------------------- manifests/defaults/templates.pp | 15 ++-- manifests/defaults/vars.pp | 3 +- manifests/pnp4nagios.pp | 7 +- 4 files changed, 61 insertions(+), 140 deletions(-) (limited to 'manifests') 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, -- cgit v1.2.3