Puppet Class: bind::service

Defined in:
manifests/service.pp

Overview

Parameters:

  • forwarders (Any) (defaults to: [])


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,
  }

}