Merge remote-tracking branch 'origin/master' into staging
[mirror/dsa-puppet.git] / modules / nagios / manifests / server.pp
index 1bbd576..95b4c3b 100644 (file)
 class nagios::server {
+       include apache2
+       include apache2::ssl
+       include apache2::authn_anon
 
-       package { [
-                       'nagios3',
-                       'nagios-nrpe-plugin',
-                       'nagios-plugins',
-                       'nagios-images'
-               ]:
-               ensure => installed
+       ssl::service { 'nagios.debian.org':
+               notify  => Exec['service apache2 reload'],
+               key => true,
        }
-
-       file { '/etc/init.d/nagios3':
-               source  => 'puppet:///modules/nagios/nagios3.init',
-               mode    => '0755',
-               require => Package['nagios3'],
-               before  => Service['nagios3'],
+       apache2::site { "10-nagios.debian.org":
+               site => "nagios.debian.org",
+               content => template('nagios/nagios.debian.org.conf.erb'),
        }
 
-       service { 'nagios3':
-               ensure  => running,
-               require => Package['nagios3'],
-       }
+       ensure_packages( [
+               'icinga',
+               'make',
+               'monitoring-plugins',
+               'nagios-nrpe-plugin',
+               ], { ensure => 'installed' })
 
-       file { '/etc/nagios-plugins/config':
-               ensure  => directory,
-               recurse => remote,
-               source  => 'puppet:///files/empty/',
-               require => Package['nagios3'],
-               notify  => Service['nagios3'],
+       service { 'icinga':
+               ensure => running,
+               require => Package['icinga'],
        }
-       file { '/etc/nagios3':
+
+       file { '/etc/icinga/apache2.conf':
+               content => template('nagios/icinga-apache2.conf.erb'),
+               notify  => Exec['service apache2 reload'],
+       }
+       file { '/srv/nagios.debian.org/htpasswd':
+               mode => '0640',
+               owner => 'root',
+               group => 'www-data',
+       }
+       file { '/etc/icinga/cgi.cfg':
+               ensure => symlink,
+               target => 'config-pushed/static/cgi.cfg',
+               notify  => Exec['service apache2 reload'],
+       }
+       file { '/etc/icinga/icinga.cfg':
+               ensure => symlink,
+               target => 'config-pushed/static/icinga.cfg',
+               notify  => Service['icinga'],
+       }
+       file { '/etc/icinga/objects':
                ensure  => directory,
-               recurse => remote,
-               source  => 'puppet:///files/empty/',
-               require => Package['nagios3'],
-               notify  => Service['nagios3'],
+               mode    => '755',
+               purge   => true,
+               recurse => true,
+               force   => true,
+               source  => "puppet:///files/empty/",
+               notify  => Service['icinga'],
+       }
+       file { '/etc/icinga/objects/contacts.cfg':
+               ensure => symlink,
+               target => '../config-pushed/static/objects/contacts.cfg',
+               notify  => Service['icinga'],
+       }
+       file { '/etc/icinga/objects/generic-host.cfg':
+               ensure => symlink,
+               target => '../config-pushed/static/objects/generic-host.cfg',
+               notify  => Service['icinga'],
+       }
+       file { '/etc/icinga/objects/generic-service.cfg':
+               ensure => symlink,
+               target => '../config-pushed/static/objects/generic-service.cfg',
+               notify  => Service['icinga'],
+       }
+       file { '/etc/icinga/objects/timeperiods.cfg':
+               ensure => symlink,
+               target => '../config-pushed/static/objects/timeperiods.cfg',
+               notify  => Service['icinga'],
        }
-       file { '/etc/nagios3/puppetconf.d':
-               ensure => directory,
-               recurse => remote,
-               source  => 'puppet:///files/empty/',
-               require => Package['nagios3'],
-               notify  => Service['nagios3'],
+
+       file { '/etc/icinga/objects/xauto-dependencies.cfg':
+               ensure => symlink,
+               target => '../config-pushed/generated/auto-dependencies.cfg',
+               notify  => Service['icinga'],
+       }
+       file { '/etc/icinga/objects/xauto-hostgroups.cfg':
+               ensure => symlink,
+               target => '../config-pushed/generated/auto-hostgroups.cfg',
+               notify  => Service['icinga'],
+       }
+       file { '/etc/icinga/objects/xauto-hosts.cfg':
+               ensure => symlink,
+               target => '../config-pushed/generated/auto-hosts.cfg',
+               notify  => Service['icinga'],
+       }
+       file { '/etc/icinga/objects/xauto-servicegroups.cfg':
+               ensure => symlink,
+               target => '../config-pushed/generated/auto-servicegroups.cfg',
+               notify  => Service['icinga'],
+       }
+       file { '/etc/icinga/objects/xauto-services.cfg':
+               ensure => symlink,
+               target => '../config-pushed/generated/auto-services.cfg',
+               notify  => Service['icinga'],
        }
+
        file { '/etc/nagios-plugins/config/local-dsa-checkcommands.cfg':
-               source => 'puppet:///modules/nagios/dsa-nagios/static/checkcommands.cfg',
-               notify => Service['nagios3'],
+               ensure => symlink,
+               target => '../../icinga/config-pushed/static/checkcommands.cfg',
+               notify  => Service['icinga'],
        }
        file { '/etc/nagios-plugins/config/local-dsa-eventhandlers.cfg':
-               source => 'puppet:///modules/nagios/dsa-nagios/static/eventhandlers.cfg',
-               notify => Service['nagios3'],
-       }
-       file { '/etc/nagios3/cgi.cfg':
-               source => 'puppet:///modules/nagios/dsa-nagios/static/cgi.cfg',
-               notify => Service['nagios3'],
-       }
-       file { '/etc/nagios3/nagios.cfg':
-               source => 'puppet:///modules/nagios/dsa-nagios/static/nagios.cfg',
-               notify => Service['nagios3'],
-       }
-       file { '/etc/nagios3/puppetconf.d/contacts.cfg':
-               source => 'puppet:///modules/nagios/dsa-nagios/static/conf.d/contacts.cfg',
-               notify => Service['nagios3'],
-       }
-       file { '/etc/nagios3/puppetconf.d/generic-host.cfg':
-               source => 'puppet:///modules/nagios/dsa-nagios/static/conf.d/generic-host.cfg',
-               notify => Service['nagios3'],
+               ensure => symlink,
+               target => '../../icinga/config-pushed/static/eventhandlers.cfg',
+               notify  => Service['icinga'],
        }
-       file { '/etc/nagios3/puppetconf.d/generic-service.cfg':
-               source => 'puppet:///modules/nagios/dsa-nagios/static/conf.d/generic-service.cfg',
-               notify => Service['nagios3'],
-       }
-       file { '/etc/nagios3/puppetconf.d/timeperiods.cfg':
-               source => 'puppet:///modules/nagios/dsa-nagios/static/conf.d/timeperiods.cfg',
-               notify => Service['nagios3'],
-       }
-       file { '/etc/nagios3/puppetconf.d/auto-dependencies.cfg':
-               source => 'puppet:///modules/nagios/dsa-nagios/generated/auto-dependencies.cfg',
-               notify => Service['nagios3'],
-       }
-       file { '/etc/nagios3/puppetconf.d/auto-hostextinfo.cfg':
-               source => 'puppet:///modules/nagios/dsa-nagios/generated/auto-hostextinfo.cfg',
-               notify => Service['nagios3'],
-       }
-       file { '/etc/nagios3/puppetconf.d/auto-hostgroups.cfg':
-               source => 'puppet:///modules/nagios/dsa-nagios/generated/auto-hostgroups.cfg',
-               notify => Service['nagios3'],
-       }
-       file { '/etc/nagios3/puppetconf.d/auto-hosts.cfg':
-               source => 'puppet:///modules/nagios/dsa-nagios/generated/auto-hosts.cfg',
-               notify => Service['nagios3'],
+
+       file { '/etc/icinga/config-pushed':
+               ensure => symlink,
+               target => '/srv/nagios.debian.org/config-pushed'
        }
-       file { '/etc/nagios3/puppetconf.d/auto-serviceextinfo.cfg':
-               source => 'puppet:///modules/nagios/dsa-nagios/generated/auto-serviceextinfo.cfg',
-               notify => Service['nagios3'],
+
+       file { '/srv/nagios.debian.org':
+               ensure => directory,
+               mode => '0755',
        }
-       file { '/etc/nagios3/puppetconf.d/auto-servicegroups.cfg':
-               source => 'puppet:///modules/nagios/dsa-nagios/generated/auto-servicegroups.cfg',
-               notify => Service['nagios3'],
+       file { '/srv/nagios.debian.org/config-pushed':
+               ensure => directory,
+               mode => '0755',
+               owner  => 'nagiosadm',
+               group  => 'nagiosadm',
        }
-       file { '/etc/nagios3/puppetconf.d/auto-services.cfg':
-               source => 'puppet:///modules/nagios/dsa-nagios/generated/auto-services.cfg',
-               notify => Service['nagios3'],
+
+       concat::fragment { 'dsa-puppet-stuff--nagios--restart-stale-icinga':
+               target => '/etc/cron.d/dsa-puppet-stuff',
+               order  => '010',
+               content  => @(EOF)
+                       */15 * * * * root find /var/lib/icinga/status.dat -mmin +20 | grep -q . && service icinga restart
+                       | EOF
        }
 }