prepare for a time when we have two things in inittab
[mirror/dsa-puppet.git] / modules / monit / manifests / init.pp
1 # = Class: monit
2 #
3 # This class installs and configures monit
4 #
5 # == Sample Usage:
6 #
7 #   include monit
8 #
9 class monit {
10
11         package { 'monit':
12                 ensure => installed
13         }
14
15         $cmd = $::lsbdistcodename ? {
16                 'sid'    => '/usr/bin/monit',
17                 'wheezy' => '/usr/bin/monit',
18                 default  => '/usr/sbin/monit',
19         }
20
21         augeas { 'inittab_monit':
22                 context => '/files/etc/inittab',
23                 changes => [
24                         'set mo/runlevels 2345',
25                         'set mo/action respawn',
26                         "set mo/process \"$cmd -d 300 -I -c /etc/monit/monitrc -s /var/lib/monit/monit.state\"",
27                 ],
28                 notify => Exec['init q'],
29         }
30
31         file { '/etc/monit/':
32                 ensure  => directory,
33                 mode    => '0755',
34                 purge   => true,
35                 notify  => Exec['monit stop'],
36                 require => Package['monit'],
37         }
38         file { '/etc/monit/monit.d':
39                 ensure  => directory,
40                 mode    => '0750',
41                 purge   => true,
42         }
43         file { '/etc/monit/monitrc':
44                 content => template('monit/monitrc.erb'),
45                 mode    => '0400'
46         }
47         file { '/etc/monit/monit.d/01puppet':
48                 source  => 'puppet:///modules/monit/puppet',
49                 mode    => '0440'
50         }
51         file { '/etc/monit/monit.d/00debian.org':
52                 source  => 'puppet:///modules/monit/debianorg',
53                 mode    => '0440'
54         }
55         file { '/etc/default/monit':
56                 content => template('monit/default.erb'),
57                 require => Package['monit'],
58                 notify  => Exec['monit stop']
59         }
60
61         exec { 'monit stop':
62                 path        => '/etc/init.d:/usr/bin:/usr/sbin:/bin:/sbin',
63                 refreshonly => true,
64         }
65 }