class backupninja::server ( $backupdir = '/backup', $backupdir_ensure = 'directory', $manage_nagios = false, $nagios_server = undef, $nagios_warn_level = 129600, $nagios_crit_level = 216000, $use_storedconfigs = true, ) { group { "backupninjas": ensure => "present", gid => 700 } file { $backupdir: ensure => $backupdir_ensure, mode => 0710, owner => root, group => "backupninjas", require => $backupdir_ensure ? { 'directory' => undef, default => File["$backupdir_ensure"], } } if $manage_nagios { case $nagios_server { undef: { err('Cannot manage nagios without nagios_server parameter!') } } include nagios::nsca::client file { "/usr/local/bin/checkbackups": ensure => "present", source => "puppet:///modules/backupninja/checkbackups.pl", mode => 0755, owner => root, group => root, } cron { checkbackups: command => "/usr/local/bin/checkbackups -d ${backupdir} -s ${nagios_server} -w ${nagios_warn_level} -c ${nagios_crit_level} | grep -v 'sent to host successfully'", user => "root", hour => "8-23", minute => 59, require => [ File["/usr/local/bin/checkbackups"], Package['nsca'] ] } } # collect all resources from hosted backups if $use_storedconfigs { include backupninja::storedconfigs } }