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
|
# File 'manifests/service.pp', line 18
class bind::service (
$forwarders = []
) {
validate_array($forwarders)
$bind_domains = hiera_hash('bind::domains')
$acls = hiera('bind::acls')
case $::operatingsystemmajrelease {
'6': {$restartcommand = '/usr/sbin/named-checkconf -z && /etc/init.d/named restart'
$reloadcommand = '/usr/sbin/named-checkconf -z && /etc/init.d/named reload'
$service_name = 'named' }
'7': {$restartcommand = '/usr/sbin/named-checkconf -z && /usr/bin/systemctl restart named-chroot'
$reloadcommand = '/usr/sbin/named-checkconf -z && /usr/bin/systemctl reload named-chroot'
$service_name = 'named-chroot' }
default: { fail("Unsupported OS release: ${::operatingsystemmajrelease}") }
}
service { $service_name:
ensure => running,
enable => true,
hasstatus => true,
require => File['/etc/named.conf'],
}
file{'/etc/named.conf':
mode => '0640',
owner => root,
group => named,
require => Package['bind', 'bind-chroot'],
content => template('bind/named_conf.erb'),
notify => Exec['named_restart'],
}
# Safer restart for the named daemon on config update
exec{'named_restart':
refreshonly => true,
command => $restartcommand,
}
# Use reload instead of restart for zone updates
exec{'zone_reload':
refreshonly => true,
command => $reloadcommand,
}
}
|