puppet 4 foo
[mirror/dsa-puppet.git] / modules / monit / manifests / init.pp
index 7c85323..977f184 100644 (file)
@@ -1,53 +1,71 @@
+# = 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
-          ;
+               augeas { 'inittab_monit':
+                       context => '/files/etc/inittab',
+                       changes => [
+                               'set mo/runlevels 2345',
+                               'set mo/action respawn',
+                               "set mo/process \"/usr/bin/monit -d 300 -I -c /etc/monit/monitrc -s /var/lib/monit/monit.state\"",
+                       ],
+                       notify => Exec['init q'],
+               }
 
-        "/etc/monit/monitrc":
-          source  => "puppet:///monit/monitrc",
-          require => Package["monit"],
-          notify  => Exec["monit restart"],
-          mode    => 440
-          ;
+               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":
-          ensure  => directory,
-          owner   => root,
-          group   => root,
-          mode    => 750,
-          purge   => true
-          ;
-
-        "/etc/monit/monit.d/01puppet":
-          source  => "puppet:///monit/puppet",
-          require => Package["monit"],
-          notify  => Exec["monit restart"],
-          mode    => 440
-          ;
-
-        "/etc/monit/monit.d/00debian.org":
-          source  => "puppet:///monit/debianorg",
-          require => Package["monit"],
-          notify  => Exec["monit restart"],
-          mode    => 440
-          ;
-
-        "/etc/default/monit":
-          source  => "puppet:///monit/default",
-          require => Package["monit"],
-          notify  => Exec["monit restart"]
-          ;
-    }
-    exec { "monit restart":
-        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
+               }
+       }
 }
-