Puppet Class: powerdns::recursor

Inherits:
powerdns::params
Defined in:
manifests/recursor.pp

Overview

Public: Install the powerdns-recursor server

package - Name of the package to install ensure - Ensure powerdns to be present or absent source - Source package of powerdns server,

default is package provider

configs used into the template:

forward_zones
forward_zones_recurse
local_address
local_port
log_common_errors
logging_facility
max_negative_ttl
quiet
setgid
setuid
trace

Example:

# Include with default
include powerdns::recursor

Parameters:

  • package (Any) (defaults to: $powerdns::params::package_recursor)
  • ensure (Any) (defaults to: 'present')
  • source (Any) (defaults to: '')
  • forward_zones (Any) (defaults to: undef)
  • forward_zones_recurse (Any) (defaults to: undef)
  • local_address (Any) (defaults to: '127.0.0.1')
  • local_port (Any) (defaults to: '53')
  • log_common_errors (Any) (defaults to: 'yes')
  • logging_facility (Any) (defaults to: undef)
  • max_negative_ttl (Any) (defaults to: undef)
  • quiet (Any) (defaults to: 'yes')
  • setgid (Any) (defaults to: 'pdns')
  • setuid (Any) (defaults to: 'pdns')
  • trace (Any) (defaults to: 'off')


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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'manifests/recursor.pp', line 26

class powerdns::recursor(
  $package               = $powerdns::params::package_recursor,
  $ensure                = 'present',
  $source                = '',
  $forward_zones         = undef,
  $forward_zones_recurse = undef,
  $local_address         = '127.0.0.1',
  $local_port            = '53',
  $log_common_errors     = 'yes',
  $logging_facility      = undef,
  $max_negative_ttl      = undef,
  $quiet                 = 'yes',
  $setgid                = 'pdns',
  $setuid                = 'pdns',
  $trace                 = 'off',

) inherits powerdns::params {

  require ::powerdns

  $package_source = $source ? {
    ''      => undef,
    default => $source
  }

  $package_provider = $source ? {
    ''      => undef,
    default => $powerdns::params::package_provider
  }

  package { $package:
    ensure   => $ensure,
    require  => Package[$powerdns::params::package],
    provider => $package_provider,
    source   => $package_source
  }

  file { $powerdns::params::recursor_cfg_path:
    ensure  => $ensure,
    owner   => root,
    group   => root,
    mode    => '0600',
    content => template('powerdns/recursor.conf.erb'),
    notify  => Service['pdns-recursor'],
    require => Package[$package],
  }

  $ensure_service = $ensure ? {
    'present' => 'running',
    default   => 'stopped'
  }

  service { 'pdns-recursor':
    ensure     => $ensure_service,
    enable     => true,
    hasrestart => true,
    hasstatus  => true,
    require    => Package[$package],
  }
}