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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
# File 'manifests/init.pp', line 30
class cron (
String[1] $service_name,
String[1] $package_name,
Boolean $manage_package = true,
Boolean $manage_service = true,
Cron::Service_ensure $service_ensure = 'running',
Cron::Service_enable $service_enable = true,
Cron::Package_ensure $package_ensure = 'installed',
Array[Cron::User] $users_allow = [],
Array[Cron::User] $users_deny = [],
Boolean $manage_users_allow = false,
Boolean $manage_users_deny = false,
Stdlib::Filemode $allow_deny_mode = '0644',
Enum['deep', 'first', 'hash', 'unique'] $merge = 'hash',
Boolean $manage_crontab = false,
Stdlib::Absolutepath $crontab_shell = '/bin/bash',
String[1] $crontab_path = '/sbin:/bin:/usr/sbin:/usr/bin',
String[1] $crontab_mailto = 'root',
Optional[Stdlib::Absolutepath] $crontab_home = undef,
Cron::Run_parts $crontab_run_parts = {},
Stdlib::Filemode $file_mode = '0644',
Stdlib::Filemode $dir_mode = '0755',
) {
contain 'cron::install'
contain 'cron::service'
Class['cron::install'] -> Class['cron::service']
# Manage cron.allow and cron.deny
if $manage_users_allow {
file { '/etc/cron.allow':
ensure => file,
mode => $allow_deny_mode,
owner => 'root',
group => 0,
content => epp('cron/users.epp', { 'users' => $users_allow }),
}
}
if $manage_users_deny {
file { '/etc/cron.deny':
ensure => file,
mode => $allow_deny_mode,
owner => 'root',
group => 0,
content => epp('cron/users.epp', { 'users' => $users_deny }),
}
}
if $manage_crontab {
# Template uses:
# - $crontab_shell
# - $crontab_path
# - $crontab_mailto
# - $crontab_home
# - $crontab_run_parts
file { '/etc/crontab':
ensure => file,
owner => 'root',
group => 0,
mode => $file_mode,
content => epp('cron/crontab.epp'),
}
$crontab_run_parts.each |String $r, Hash $r_params| {
file { "/etc/cron.${r}":
ensure => directory,
owner => 'root',
group => 0,
mode => $dir_mode,
before => File['/etc/crontab'],
}
}
}
# Create jobs from hiera
$cron_job = lookup('cron::job', Optional[Hash], $merge, {})
$cron_job.each | String $t, Hash $params | {
cron::job { $t:
* => $params,
}
}
$cron_job_multiple = lookup('cron::job::multiple', Optional[Hash], $merge, {})
$cron_job_multiple.each | String $t, Hash $params | {
cron::job::multiple { $t:
* => $params,
}
}
$cron_hourly = lookup('cron::hourly', Optional[Hash], $merge, {})
$cron_hourly.each | String $t, Hash $params | {
cron::hourly { $t:
* => $params,
}
}
$cron_daily = lookup('cron::daily', Optional[Hash], $merge, {})
$cron_daily.each | String $t, Hash $params | {
cron::daily { $t:
* => $params,
}
}
$cron_weekly = lookup('cron::weekly', Optional[Hash], $merge, {})
$cron_weekly.each | String $t, Hash $params | {
cron::weekly { $t:
* => $params,
}
}
$cron_monthly = lookup('cron::monthly', Optional[Hash], $merge, {})
$cron_monthly.each | String $t, Hash $params | {
cron::monthly { $t:
* => $params,
}
}
}
|