summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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,