3
4
5
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
|
# File 'manifests/zonecheck.pp', line 3
class dns::zonecheck (
Boolean $enable = true,
String $version = '1.0.18',
Tea::Syslog_level $syslog_level = 'error',
) {
include ::dns
$zones = $::dns::zones
$ip_addresses = $::dns::ip_addresses
$masters = $::dns::default_masters
$provide_xfrs = $::dns::default_provide_xfrs
$remotes = $::dns::remotes
if has_key($::dns::tsigs, $::dns::default_tsig_name) {
$tsig = {
'algo' => 'hmac-sha256',
'name' => $::dns::default_tsig_name,
'data' => $::dns::tsigs[$::dns::default_tsig_name]['data'],
}
}
$ensure = $enable ? {
true => 'present',
default => 'absent',
}
$verbose = $syslog_level ? {
'critical' => '',
'error' => '-v',
'warn' => '-vv',
'info' => '-vvv',
'debug' => '-vvvv',
default => '-v'
}
package {'zonecheck':
ensure => $version,
provider => 'pip',
}
if $::kernel != 'FreeBSD' {
include ::python
}
file {'/usr/local/etc/zone_check.conf':
ensure => $ensure,
content => template('dns/usr/local/etc/zone_check.conf.erb'),
}
if ! $enable {
file {'/etc/puppetlabs/facter/facts.d/zone_status.txt':
ensure => file,
content => 'zone_status_errors=false';
}
}
cron {'/usr/local/bin/zonecheck':
ensure => $ensure,
command => "/usr/bin/flock -n /var/lock/zonecheck.lock /usr/local/bin/zonecheck --puppet-facts ${verbose}",
minute => '*/15',
}
}
|