+# = Class: monit
+#
+# This class installs and configures monit
+#
+# == Sample Usage:
+#
+# include monit
+#
class monit {
- package { "monit": ensure => installed }
+ if $::lsbmajdistrelease <= 7 {
+ package { 'monit':
+ ensure => installed
+ }
- file {
- "/etc/monit/":
- ensure => directory,
- owner => root,
- group => root,
- mode => 755,
- purge => true
- ;
+ $cmd = $::lsbdistcodename ? {
+ 'squeeze' => '/usr/sbin/monit',
+ default => '/usr/bin/monit',
+ }
- "/etc/monit/monitrc":
- content => template("monit/monitrc.erb"),
- require => Package["monit"],
- notify => Exec["monit stop"],
- mode => 400
- ;
+ augeas { 'inittab_monit':
+ context => '/files/etc/inittab',
+ changes => [
+ 'set mo/runlevels 2345',
+ 'set mo/action respawn',
+ "set mo/process \"$cmd -d 300 -I -c /etc/monit/monitrc -s /var/lib/monit/monit.state\"",
+ ],
+ notify => Exec['init q'],
+ }
- "/etc/monit/monit.d":
- ensure => directory,
- owner => root,
- group => root,
- mode => 750,
- purge => true
- ;
+ file { '/etc/monit/':
+ ensure => directory,
+ mode => '0755',
+ purge => true,
+ notify => Exec['service monit stop'],
+ require => Package['monit'],
+ }
+ file { '/etc/monit/monit.d':
+ ensure => directory,
+ mode => '0750',
+ purge => true,
+ }
+ file { '/etc/monit/monitrc':
+ content => template('monit/monitrc.erb'),
+ mode => '0400'
+ }
+ file { '/etc/monit/monit.d/01puppet':
+ source => 'puppet:///modules/monit/puppet',
+ mode => '0440'
+ }
+ file { '/etc/monit/monit.d/00debian.org':
+ source => 'puppet:///modules/monit/debianorg',
+ mode => '0440'
+ }
+ file { '/etc/default/monit':
+ content => template('monit/default.erb'),
+ require => Package['monit'],
+ notify => Exec['service monit stop']
+ }
- "/etc/monit/monit.d/01puppet":
- source => "puppet:///monit/puppet",
- require => Package["monit"],
- notify => Exec["monit stop"],
- mode => 440
- ;
-
- "/etc/monit/monit.d/00debian.org":
- source => "puppet:///monit/debianorg",
- require => Package["monit"],
- notify => Exec["monit stop"],
- mode => 440
- ;
-
- "/etc/default/monit":
- content => template("monit/default.erb"),
- require => Package["monit"],
- notify => Exec["monit stop"]
- ;
- }
- exec { "monit stop":
- path => "/etc/init.d:/usr/bin:/usr/sbin:/bin:/sbin",
- refreshonly => true,
- }
+ exec { 'service monit stop':
+ refreshonly => true,
+ }
+ } else {
+ package { 'monit':
+ ensure => purged
+ }
+ file { [ '/etc/monit/',
+ '/etc/monit/monit.d',
+ '/etc/monit/monit.d/01puppet',
+ '/etc/monit/monit.d/00debian.org'
+ ]:
+ ensure => absent,
+ force => true
+ }
+ }
}
-
-# vim:set et:
-# vim:set sts=4 ts=4:
-# vim:set shiftwidth=4: