Gitlab Community Edition Instance

Skip to content
Snippets Groups Projects
monit.pp 2.25 KiB
Newer Older
# 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,
Benedikt Wegmann's avatar
Benedikt Wegmann committed
        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']
    }