Puppet Class: kea::ddns

Defined in:
manifests/ddns.pp

Summary

Manages the Kea DHCP-DDNS server.

Overview



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
# File 'manifests/ddns.pp', line 6

class kea::ddns {
  assert_private()

  # Extract configuration from the ddns hash
  $config = $kea::ddns

  # Merge defaults with provided config
  $service_ensure = pick($config['service_ensure'], 'running')
  $service_enable = pick($config['service_enable'], true)
  $config_file    = pick($config['config_file'], "${kea::config_dir}/kea-dhcp-ddns.conf")

  # Install DHCP-DDNS package
  package { 'isc-kea-dhcp-ddns':
    ensure  => installed,
    require => Class['kea::install'],
  }

  # Configuration file
  file { $config_file:
    ensure  => file,
    owner   => 'root',
    group   => 'root',
    mode    => '0644',
    content => epp('kea/kea-dhcp-ddns.conf.epp', {
        'config'     => $config,
        'config_dir' => $kea::config_dir,
        'run_dir'    => $kea::run_dir,
        'log_dir'    => $kea::log_dir,
        'lib_dir'    => $kea::lib_dir,
    }),
    require => Package['isc-kea-dhcp-ddns'],
    notify  => Service['isc-kea-dhcp-ddns-server'],
  }

  # Service management
  # Note: On Debian/Ubuntu, the real service name is isc-kea-dhcp-ddns-server
  service { 'isc-kea-dhcp-ddns-server':
    ensure     => $service_ensure,
    enable     => $service_enable,
    hasrestart => true,
    hasstatus  => true,
    require    => [
      Package['isc-kea-dhcp-ddns'],
      File[$config_file],
    ],
  }
}