Puppet Class: pdns_server

Defined in:
modules/pdns_server/manifests/init.pp

Overview

Parameters:

  • listen_on (Array[Stdlib::IP::Address::Nosubnet, 1])
  • default_soa_content (Stdlib::Fqdn)
  • query_local_address (Stdlib::Fqdn)
  • pdns_db_host (Stdlib::Host)
  • pdns_db_password (String[1])
  • dns_webserver_address (Stdlib::IP::Address::Nosubnet)
  • dns_api_key (String[1])
  • dns_api_allow_from (Array[Stdlib::IP::Address::Nosubnet])


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
# File 'modules/pdns_server/manifests/init.pp', line 9

class pdns_server(
    Array[Stdlib::IP::Address::Nosubnet, 1] $listen_on,
    Stdlib::Fqdn                            $default_soa_content,
    Stdlib::Fqdn                            $query_local_address,
    Stdlib::Host                            $pdns_db_host,
    String[1]                               $pdns_db_password,
    Stdlib::IP::Address::Nosubnet           $dns_webserver_address,
    String[1]                               $dns_api_key,
    Array[Stdlib::IP::Address::Nosubnet]    $dns_api_allow_from,
) {

    package { [ 'pdns-server',
                'pdns-backend-mysql' ]:
        ensure => 'present',
    }

    file { '/etc/powerdns/pdns.conf':
        ensure  => 'present',
        owner   => 'root',
        group   => 'pdns',
        mode    => '0440',
        content => template('pdns_server/pdns.conf.erb'),
        require => Package['pdns-server'],
    }

    # Clean up any example configs that the pdns packages might have installed;
    #  We don't want them accidentally used or merged into our puppetized config.
    file { '/etc/powerdns/pdns.d/':
        ensure  => 'directory',
        purge   => true,
        recurse => true,
    }

    service { 'pdns':
        ensure     => 'running',
        require    => [ Package['pdns-server'],
                        File['/etc/powerdns/pdns.conf']
        ],
        subscribe  => File['/etc/powerdns/pdns.conf'],
        hasrestart => false,
    }
}