From c4f9160f135243f305669e1a731812dd6c3573de Mon Sep 17 00:00:00 2001 From: varac Date: Thu, 10 Mar 2016 17:19:52 +0100 Subject: Improve relationship of nagios resources --- manifests/base.pp | 7 ++++--- manifests/debian.pp | 9 +++++++-- manifests/defaults/pnp4nagios.pp | 10 +++++++--- manifests/pnp4nagios.pp | 25 ++++++++++++++----------- manifests/pnp4nagios/popup.pp | 27 ++++++++++++++++----------- 5 files changed, 48 insertions(+), 30 deletions(-) diff --git a/manifests/base.pp b/manifests/base.pp index 1ba0679..e49b9c8 100644 --- a/manifests/base.pp +++ b/manifests/base.pp @@ -69,9 +69,9 @@ class nagios::base { if $cfg_dir == '/etc/nagios3' { file{'/etc/nagios': - ensure => link, - target => $cfg_dir, - require => Package['nagios'], + ensure => link, + target => $cfg_dir, + before => File['nagios_cfgdir'], } } @@ -94,6 +94,7 @@ class nagios::base { ensure => file, replace => false, notify => Service['nagios'], + require => File['nagios_cfgdir'], owner => root, group => 0, mode => '0644'; diff --git a/manifests/debian.pp b/manifests/debian.pp index 9b1f7e7..39af973 100644 --- a/manifests/debian.pp +++ b/manifests/debian.pp @@ -21,11 +21,13 @@ class nagios::debian inherits nagios::base { notify => Service['nagios'], owner => root, group => root, - mode => '0644'; + mode => '0644', + require => Package['nagios']; "${nagios::defaults::vars::int_cfgdir}/stylesheets": ensure => directory, purge => false, - recurse => true; + recurse => true, + require => Package['nagios']; } if $nagios::allow_external_cmd { @@ -34,16 +36,19 @@ class nagios::debian inherits nagios::base { unless => 'dpkg-statoverride --list nagios www-data 2710 /var/lib/nagios3/rw && dpkg-statoverride --list nagios nagios 751 /var/lib/nagios3', logoutput => false, notify => Service['nagios'], + require => Package['nagios'], } exec { 'nagios_external_cmd_perms_1': command => 'chmod 0751 /var/lib/nagios3 && chown nagios:nagios /var/lib/nagios3', unless => 'test "`stat -c "%a %U %G" /var/lib/nagios3`" = "751 nagios nagios"', notify => Service['nagios'], + require => Package['nagios'], } exec { 'nagios_external_cmd_perms_2': command => 'chmod 2751 /var/lib/nagios3/rw && chown nagios:www-data /var/lib/nagios3/rw', unless => 'test "`stat -c "%a %U %G" /var/lib/nagios3/rw`" = "2751 nagios www-data"', notify => Service['nagios'], + require => Package['nagios'], } } } diff --git a/manifests/defaults/pnp4nagios.pp b/manifests/defaults/pnp4nagios.pp index 662d13b..58676c5 100644 --- a/manifests/defaults/pnp4nagios.pp +++ b/manifests/defaults/pnp4nagios.pp @@ -1,10 +1,14 @@ +# configure default cmds for pnp4nagios class nagios::defaults::pnp4nagios { - # performance data cmds + + # performance data cmds # http://docs.pnp4nagios.org/de/pnp-0.6/config#bulk_mode_mit_npcd nagios_command { 'process-service-perfdata-file-pnp4nagios-bulk-npcd': - command_line => '/bin/mv /var/lib/nagios3/service-perfdata /var/spool/pnp4nagios/npcd/service-perfdata.$TIMET$'; + command_line => '/bin/mv /var/lib/nagios3/service-perfdata /var/spool/pnp4nagios/npcd/service-perfdata.$TIMET$', + require => Package['nagios']; 'process-host-perfdata-file-pnp4nagios-bulk-npcd': - command_line => '/bin/mv /var/lib/nagios3/host-perfdata /var/spool/pnp4nagios/npcd/host-perfdata.$TIMET$' + command_line => '/bin/mv /var/lib/nagios3/host-perfdata /var/spool/pnp4nagios/npcd/host-perfdata.$TIMET$', + require => Package['nagios']; } } diff --git a/manifests/pnp4nagios.pp b/manifests/pnp4nagios.pp index a7e1c73..32c9a33 100644 --- a/manifests/pnp4nagios.pp +++ b/manifests/pnp4nagios.pp @@ -18,6 +18,7 @@ class nagios::pnp4nagios { owner => root, group => root, notify => Service['nagios'], + require => Package['nagios']; } file { 'apache.conf': @@ -28,19 +29,20 @@ class nagios::pnp4nagios { owner => root, group => root, notify => Service['apache'], - require => Package['pnp4nagios'], + require => [ Package['apache2'], Package['pnp4nagios'] ], } # run npcd as daemon file { '/etc/default/npcd': - path => '/etc/default/npcd', - source => [ 'puppet:///modules/site_nagios/pnp4nagios/npcd', + path => '/etc/default/npcd', + source => [ 'puppet:///modules/site_nagios/pnp4nagios/npcd', 'puppet:///modules/nagios/pnp4nagios/npcd' ], - mode => '0644', - owner => root, - group => root, - notify => Service['npcd']; + mode => '0644', + owner => root, + group => root, + notify => Service['npcd'], + require => [ Package['nagios'], Package['pnp4nagios'] ]; } service { 'npcd': @@ -56,9 +58,10 @@ class nagios::pnp4nagios { path => '/usr/share/nagios3/htdocs/images/action.gif', source => [ 'puppet:///modules/site_nagios/pnp4nagios/action.gif', 'puppet:///modules/nagios/pnp4nagios/action.gif' ], - mode => '0644', - owner => root, - group => root, - notify => Service['nagios']; + mode => '0644', + owner => root, + group => root, + notify => Service['nagios'], + require => Package['nagios']; } } diff --git a/manifests/pnp4nagios/popup.pp b/manifests/pnp4nagios/popup.pp index 0dc04b0..91136cc 100644 --- a/manifests/pnp4nagios/popup.pp +++ b/manifests/pnp4nagios/popup.pp @@ -1,19 +1,24 @@ -class nagios::pnp4nagios::popup inherits nagios::pnp4nagios { +class nagios::pnp4nagios::popup inherits nagios::pnp4nagios { File['pnp4nagios-templates.cfg']{ - source => [ 'puppet:///modules/site_nagios/pnp4nagios/pnp4nagios-popup-templates.cfg', - 'puppet:///modules/nagios/pnp4nagios/pnp4nagios-popup-templates.cfg' ], + source => [ + 'puppet:///modules/site-nagios/pnp4nagios/pnp4nagios-popup-templates.cfg', + 'puppet:///modules/nagios/pnp4nagios/pnp4nagios-popup-templates.cfg' ], } file { '/usr/share/nagios3/htdocs/ssi': - ensure => directory } + ensure => directory, + require => Package['nagios'], + } file { 'status-header.ssi': - path => '/usr/share/nagios3/htdocs/ssi/status-header.ssi', - source => [ 'puppet:///modules/site_nagios/pnp4nagios/status-header.ssi', - 'puppet:///modules/nagios/pnp4nagios/status-header.ssi' ], - mode => '0644', - owner => root, - group => root, - notify => Service['nagios'], + path => '/usr/share/nagios3/htdocs/ssi/status-header.ssi', + source => [ + 'puppet:///modules/site-nagios/pnp4nagios/status-header.ssi', + 'puppet:///modules/nagios/pnp4nagios/status-header.ssi'], + mode => '0644', + owner => root, + group => root, + notify => Service['nagios'], + require => Package['nagios'], } } -- cgit v1.2.3 From 2357c6b8ac89401288c1389af68e7861d08e7297 Mon Sep 17 00:00:00 2001 From: varac Date: Thu, 10 Mar 2016 17:23:35 +0100 Subject: Always notify Service[nagios] from nagios resources --- manifests/base.pp | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/manifests/base.pp b/manifests/base.pp index e49b9c8..c32c4c3 100644 --- a/manifests/base.pp +++ b/manifests/base.pp @@ -100,27 +100,25 @@ class nagios::base { mode => '0644'; } - 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; - } + 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 => $::nagios::purge_resources } if ( $nagios::storeconfigs == true ) { -- cgit v1.2.3 From 329c982fe6daec3ec5ac519eb623acc522d84d3b Mon Sep 17 00:00:00 2001 From: varac Date: Thu, 10 Mar 2016 17:24:37 +0100 Subject: Nagios resources depend on nagios confdir --- manifests/base.pp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/manifests/base.pp b/manifests/base.pp index c32c4c3..18d5c12 100644 --- a/manifests/base.pp +++ b/manifests/base.pp @@ -121,6 +121,23 @@ class nagios::base { purge => $::nagios::purge_resources } + # make sure nagios resources are defined after nagios is + # installed and the nagios_cfgdir resource is present + File['nagios_cfgdir'] -> Nagios_command <||> + File['nagios_cfgdir'] -> Nagios_contactgroup <||> + File['nagios_cfgdir'] -> Nagios_contact <||> + File['nagios_cfgdir'] -> Nagios_hostdependency <||> + File['nagios_cfgdir'] -> Nagios_hostescalation <||> + File['nagios_cfgdir'] -> Nagios_hostextinfo <||> + File['nagios_cfgdir'] -> Nagios_hostgroup <||> + File['nagios_cfgdir'] -> Nagios_host <||> + File['nagios_cfgdir'] -> Nagios_servicedependency <||> + File['nagios_cfgdir'] -> Nagios_serviceescalation <||> + File['nagios_cfgdir'] -> Nagios_servicegroup <||> + File['nagios_cfgdir'] -> Nagios_serviceextinfo <||> + File['nagios_cfgdir'] -> Nagios_service <||> + File['nagios_cfgdir'] -> Nagios_timeperiod <||> + if ( $nagios::storeconfigs == true ) { include ::nagios::storeconfigs } -- cgit v1.2.3