class monit {
package { 'monit':
ensure => installed,
}
service { 'monit':
ensure => running,
enable => true,
hasrestart => true,
require => Package['monit'],
}
file { '/etc/monit/monitrc':
mode => 600,
owner => root,
group => root,
content => template("/etc/puppet/modules/monit/templates/monitrc.erb"),
notify => Service['monit'],
require => File['/etc/monit'],
}
file { '/etc/default/monit':
mode => 644,
owner => root,
group => root,
content => template("/etc/puppet/modules/monit/templates/default.erb"),
notify => Service['monit'],
require => Package['monit'],
}
file { '/etc/monit/':
mode => 755,
owner => root,
group => root,
ensure => directory,
notify => Service['monit'],
require => Package['monit'],
}
file { '/etc/monit/conf.d':
mode => 755,
owner => root,
group => root,
ensure => directory,
require => File['/etc/monit'],
notify => Service['monit'],
recurse => true,
purge => true,
}
monit::sshdcheck { "sshdcheck_${fqdn}": }
}
define monit::options ($interval = 180, $mailserver = undef, $email = undef, $http_address = undef, $http_allow = undef, $http_user = undef, $http_password = undef) {
file { "/etc/monit/conf.d/options_$name":
mode => 600,
owner => root,
group => root,
content => template("/etc/puppet/modules/monit/templates/options.erb"),
notify => Service['monit'],
require => File['/etc/monit/conf.d'],
}
}
define monit::pidcheck ($process_name, $pidfile, $start_prog, $stop_prog) {
file { "/etc/monit/conf.d/$name":
mode => 600,
owner => root,
group => root,
content => template("/etc/puppet/modules/monit/templates/pidcheck.erb"),
notify => Service['monit'],
require => File['/etc/monit/conf.d'],
}
}
define monit::bindcheck ($bind_ips) {
file { "/etc/monit/conf.d/$name":
mode => 600,
owner => root,
group => root,
content => template("/etc/puppet/modules/monit/templates/bind.erb"),
notify => Service['monit'],
require => File['/etc/monit/conf.d'],
}
}
define monit::clamdcheck ($clamd_port=3310, $clamd_ips=[]) {
file { "/etc/monit/conf.d/$name":
mode => 600,
owner => root,
group => root,
content => template("/etc/puppet/modules/monit/templates/clamd.erb"),
notify => Service['monit'],
require => File['/etc/monit/conf.d'],
}
}
define monit::sshdcheck ($sshd_port=22, $sshd_ips=[]) {
file { "/etc/monit/conf.d/$name":
mode => 600,
owner => root,
group => root,
content => template("/etc/puppet/modules/monit/templates/sshd.erb"),
notify => Service['monit'],
require => File['/etc/monit/conf.d'],
}
}