parts of the nagios setup
[mirror/dsa-puppet.git] / modules / nagios / manifests / server.pp
index 6f90533..95b4c3b 100644 (file)
-class nagios::server inherits nagios::client {
-       package {
-               nagios3: ensure => installed;
-               nagios-nrpe-plugin: ensure => installed;
-               nagios-plugins: ensure => installed;
-               nagios-images: ensure => installed;
+class nagios::server {
+       include apache2
+       include apache2::ssl
+       include apache2::authn_anon
+
+       ssl::service { 'nagios.debian.org':
+               notify  => Exec['service apache2 reload'],
+               key => true,
+       }
+       apache2::site { "10-nagios.debian.org":
+               site => "nagios.debian.org",
+               content => template('nagios/nagios.debian.org.conf.erb'),
        }
 
-       file {
-               "/etc/nagios-plugins/config/local-dsa-checkcommands.cfg":
-                       source  => [ "puppet:///modules/nagios/dsa-nagios/static/checkcommands.cfg" ],
-                       require => Package["nagios3"],
-                       notify  => Exec["nagios3 reload"];
+       ensure_packages( [
+               'icinga',
+               'make',
+               'monitoring-plugins',
+               'nagios-nrpe-plugin',
+               ], { ensure => 'installed' })
+
+       service { 'icinga':
+               ensure => running,
+               require => Package['icinga'],
+       }
 
-               "/etc/nagios3/cgi.cfg":
-                       source  => [ "puppet:///modules/nagios/dsa-nagios/static/cgi.cfg" ],
-                       require => Package["nagios3"],
-                       notify  => Exec["nagios3 reload"];
-               "/etc/nagios3/nagios.cfg":
-                       source  => [ "puppet:///modules/nagios/dsa-nagios/static/nagios.cfg" ],
-                       require => Package["nagios3"],
-                       notify  => Exec["nagios3 reload"];
+       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,
+               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'],
+       }
 
-               "/etc/nagios3/puppetconf.d":
-                       mode    => 755,
-                       require => Package["nagios3"],
-                       ensure  => directory;
+       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'],
+       }
 
-               "/etc/nagios3/puppetconf.d/contacts.cfg":
-                       source  => [ "puppet:///modules/nagios/dsa-nagios/static/conf.d/contacts.cfg" ],
-                       require => Package["nagios3"],
-                       notify  => Exec["nagios3 reload"];
-               "/etc/nagios3/puppetconf.d/generic-host.cfg":
-                       source  => [ "puppet:///modules/nagios/dsa-nagios/static/conf.d/generic-host.cfg" ],
-                       require => Package["nagios3"],
-                       notify  => Exec["nagios3 reload"];
-               "/etc/nagios3/puppetconf.d/generic-service.cfg":
-                       source  => [ "puppet:///modules/nagios/dsa-nagios/static/conf.d/generic-service.cfg" ],
-                       require => Package["nagios3"],
-                       notify  => Exec["nagios3 reload"];
-               "/etc/nagios3/puppetconf.d/timeperiods.cfg":
-                       source  => [ "puppet:///modules/nagios/dsa-nagios/static/conf.d/timeperiods.cfg" ],
-                       require => Package["nagios3"],
-                       notify  => Exec["nagios3 reload"];
+       file { '/etc/nagios-plugins/config/local-dsa-checkcommands.cfg':
+               ensure => symlink,
+               target => '../../icinga/config-pushed/static/checkcommands.cfg',
+               notify  => Service['icinga'],
+       }
+       file { '/etc/nagios-plugins/config/local-dsa-eventhandlers.cfg':
+               ensure => symlink,
+               target => '../../icinga/config-pushed/static/eventhandlers.cfg',
+               notify  => Service['icinga'],
+       }
 
-               "/etc/nagios3/puppetconf.d/auto-dependencies.cfg":
-                       source  => [ "puppet:///modules/nagios/dsa-nagios/generated/auto-dependencies.cfg" ],
-                       require => Package["nagios3"],
-                       notify  => Exec["nagios3 reload"];
-               "/etc/nagios3/puppetconf.d/auto-hostextinfo.cfg":
-                       source  => [ "puppet:///modules/nagios/dsa-nagios/generated/auto-hostextinfo.cfg" ],
-                       require => Package["nagios3"],
-                       notify  => Exec["nagios3 reload"];
-               "/etc/nagios3/puppetconf.d/auto-hostgroups.cfg":
-                       source  => [ "puppet:///modules/nagios/dsa-nagios/generated/auto-hostgroups.cfg" ],
-                       require => Package["nagios3"],
-                       notify  => Exec["nagios3 reload"];
-               "/etc/nagios3/puppetconf.d/auto-hosts.cfg":
-                       source  => [ "puppet:///modules/nagios/dsa-nagios/generated/auto-hosts.cfg" ],
-                       require => Package["nagios3"],
-                       notify  => Exec["nagios3 reload"];
-               "/etc/nagios3/puppetconf.d/auto-serviceextinfo.cfg":
-                       source  => [ "puppet:///modules/nagios/dsa-nagios/generated/auto-serviceextinfo.cfg" ],
-                       require => Package["nagios3"],
-                       notify  => Exec["nagios3 reload"];
-               "/etc/nagios3/puppetconf.d/auto-servicegroups.cfg":
-                       source  => [ "puppet:///modules/nagios/dsa-nagios/generated/auto-servicegroups.cfg" ],
-                       require => Package["nagios3"],
-                       notify  => Exec["nagios3 reload"];
-               "/etc/nagios3/puppetconf.d/auto-services.cfg":
-                       source  => [ "puppet:///modules/nagios/dsa-nagios/generated/auto-services.cfg" ],
-                       require => Package["nagios3"],
-                       notify  => Exec["nagios3 reload"];
+       file { '/etc/icinga/config-pushed':
+               ensure => symlink,
+               target => '/srv/nagios.debian.org/config-pushed'
+       }
 
+       file { '/srv/nagios.debian.org':
+               ensure => directory,
+               mode => '0755',
+       }
+       file { '/srv/nagios.debian.org/config-pushed':
+               ensure => directory,
+               mode => '0755',
+               owner  => 'nagiosadm',
+               group  => 'nagiosadm',
        }
 
-       exec { "nagios3 reload":
-               path        => "/etc/init.d:/usr/bin:/usr/sbin:/bin:/sbin",
-               refreshonly => true,
+       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
        }
 }
-# vim:set et:
-# vim:set sts=4 ts=4:
-# vim:set shiftwidth=4: