# Installs and configures Monit monitoring tool. class ubuntu_server::monit($admin_emails, $admin_user = 'madmin', $admin_passwd = 'gEt0ffMyL4wn', $mailserver = 'mailer.gwdg.de', $monit_basis_config_template = 'ubuntu_server/etc/monit/conf.d/config.erb', $monit_filesystems_config_template = 'ubuntu_server/etc/monit/conf.d/filesystems.erb', $monit_config_dir = 'puppet:///modules/ubuntu_server/etc/monit/conf.d', $docker_check = false, $puppet_check = false) { File{ owner => root, group => root, mode => 0640, } package{'monit': ensure => present, } exec{'check_opt': creates => '/opt/', command => 'mkdir /opt/', path => $::path, before => Package['monit'], } file{'/etc/monit/conf.d/config': ensure => present, content => template($monit_basis_config_template), require => Package['monit'], } ~> Service['monit'] file{'/etc/monit/conf.d/filesystems': ensure => present, content => template($monit_filesystems_config_template), require => Package['monit'], } ~> Service['monit'] service{'monit': ensure => running, require => Package['monit'], } file{'monit_configs': ensure => directory, path => '/etc/monit/conf.d', source => $monit_config_dir, recurse => remote, require => Package['monit'], } ~> Service['monit'] file{'/opt/monit': ensure => directory, } if $docker_check == true { file{'docker_test': ensure => present, path => '/opt/monit/docker-ps', source => 'puppet:///modules/ubuntu_server/opt/monit/docker-ps', mode => '0740', } file{'/etc/monit/conf.d/docker-ps': ensure => present, source => 'puppet:///modules/ubuntu_server/etc/monit/conf.d-extras/docker-ps', require => Package['monit'], } ~> Service['monit'] } if $puppet_check == true { file{'/etc/monit/conf.d/puppet-agent': ensure => present, source => 'puppet:///modules/ubuntu_server/etc/monit/conf.d-extras/puppet-agent', require => Package['monit'], } ~> Service['monit'] } }