Puppet Class: coretx::cronjob
- Defined in:
- manifests/cronjob.pp
Overview
Class: coretx::cronjob
Manage user and system-wide Cron jobs (/etc/crontab) - This class will overwrite your system Crontab file! Resource documentation (cron): docs.puppet.com/puppet/latest/types/cron.html
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'manifests/cronjob.pp', line 6
class coretx::cronjob (
Hash $user_cronjobs_hash = {},
Hash $crontab_jobs_hash = {},
String $crond_ensure = 'running',
Boolean $crond_enable = true,
String $override_crontab_shell = 'use_defaults',
String $override_crontab_path = 'use_defaults',
String $override_crontab_template = 'use_defaults',
String $override_cron_service = 'use_defaults',
)
{
# OS defaults for /etc/crontab
case $::osfamily {
/^(RedHat)$/: {
$crontab_shell_default = '/bin/bash'
$crontab_path_default = '/sbin:/bin:/usr/sbin:/usr/bin'
$crontab_template_default = 'coretx/crontab_el.erb'
$cron_service_default = 'crond'
}
/^(Debian|Ubuntu)$/: {
$crontab_shell_default = '/bin/sh'
$crontab_path_default = '/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin'
$crontab_template_default = 'coretx/crontab_deb.erb'
$cron_service_default = 'cron'
}
default: {
if $override_crontab_template == use_defaults or $override_crontab_template == undef {
$crontab_template = 'coretx/crontab_deb.erb'
$cron_service = 'cron'
fail("System crontab file template only tested on RedHat/Debian. Detected osfamily is <${::osfamily}>. Set appropriate override_ variables for your system to use a template")
}
else {
$crontab_shell = $override_crontab_shell
$crontab_path = $override_crontab_path
$crontab_template = $override_crontab_template
$cron_service = $override_cron_service
warning("Detected osfamily is <${::osfamily}>. Overrides set - template file: <${override_crontab_template}>; shell: <${override_crontab_shell}>; path: <${override_crontab_path}>; cron service: <${override_cron_service}>")
}
}
}
if $override_crontab_template != use_defaults {
$crontab_template = $override_crontab_template
}
else {
$crontab_template = $crontab_template_default
}
if $override_crontab_shell != use_defaults {
$crontab_shell = $override_crontab_shell
}
else {
$crontab_shell = $crontab_shell_default
}
if $override_crontab_path != use_defaults {
$crontab_path = $override_crontab_path
}
else {
$crontab_path = $crontab_path_default
}
if $override_cron_service != use_defaults {
$cron_service = $override_cron_service
}
else {
$cron_service = $cron_service_default
}
service { $cron_service:
ensure => $crond_ensure,
enable => $crond_enable,
}
if !empty($user_cronjobs_hash) {
create_resources(cron, $user_cronjobs_hash)
}
if !empty($crontab_jobs_hash) {
file { '/etc/crontab':
ensure => present,
owner => 'root',
group => 'root',
mode => '0644',
content => template($crontab_template),
notify => Service[$cron_service],
}
}
}
|