Puppet Class: nsd
- Defined in:
 - manifests/init.pp
 
Overview
Class: nsd
Installs and configures NSD, the authoritative DNS resolver from NLnet Labs
        5 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 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  | 
      
        # File 'manifests/init.pp', line 5
class nsd (
  String $config_d,
  String $config_file,
  String $service_name,
  Variant[String,Undef] $package_name,
  String $control_cmd,
  String $zonedir,
  Boolean $zonepurge, # purge of unmanaged zone files
  String $group,
  String $owner,
  String $database,
  Integer $verbosity                    = 0,
  Integer $port                         = 53,
  Array[Stdlib::Ip::Address] $interface = ['::0','0.0.0.0'],
  Optional[String] $logfile             = undef,
) {
  if $package_name {
    package { $package_name:
      ensure => installed,
      before => [
        Concat[$config_file],
        Service[$service_name],
      ],
    }
  }
  service { $service_name:
    ensure  => running,
    name    => $service_name,
    enable  => true,
    require => [
      Concat[$config_file],
    ],
  }
  concat { $config_file:
    owner  => 'root',
    group  => $group,
    mode   => '0640',
    notify => Service[$service_name],
  }
  concat::fragment { 'nsd-header':
    order   => '00',
    target  => $config_file,
    content => template('nsd/nsd.conf.erb'),
  }
  exec { 'nsd-control-setup':
    command => 'nsd-control-setup',
    creates => "${config_d}/nsd_control.pem",
  }
  exec { 'nsd-control reload':
    command     => 'nsd-control reload',
    refreshonly => true,
    require     => Service[$service_name],
  }
  exec { 'nsd-control reconfig':
    command     => 'nsd-control reconfig',
    refreshonly => true,
    require     => Service[$service_name],
  }
  file { $zonedir:
    ensure  => directory,
    owner   => 'root',
    group   => $group,
    mode    => '0750',
    purge   => $zonepurge,
    recurse => true,
  }
}
       |