puppet-openstack-integration/manifests/bind.pp

58 lines
1.7 KiB
Puppet

# Configures the BIND service for use with Designate's BIND backend
#
class openstack_integration::bind {
include openstack_integration::config
include openstack_integration::params
$bind_host = $::openstack_integration::config::host
$listen_on = $::openstack_integration::config::ipv6 ? {
true => 'none',
default => $bind_host,
}
$listen_on_v6 = $::openstack_integration::config::ipv6 ? {
true => $bind_host,
default => 'none',
}
# NOTE (dmsimard): listen_on_v6 is false and overridden due to extended port
# configuration in additional_options
class { 'dns':
recursion => 'no',
allow_recursion => [],
listen_on_v6 => false,
additional_options => {
'listen-on' => "port 5322 { ${listen_on}; }",
'listen-on-v6' => "port 5322 { ${listen_on_v6}; }",
'auth-nxdomain' => 'no',
'allow-new-zones' => 'yes',
# Recommended by Designate docs as a mitigation for potential cache
# poisoning attacks:
# https://docs.openstack.org/designate/latest/admin/production-guidelines.html#bind9-mitigation
'minimal-responses' => 'yes',
},
controls => {
$bind_host => {
'port' => 953,
'allowed_addresses' => [$bind_host],
'keys' => ['rndc-key'],
}
},
}
$dnsdir = $::dns::params::dnsdir
# ::dns creates the rndc key but not a rndc.conf.
# Contribute this in upstream ::dns ?
file { 'rndc.conf':
ensure => present,
path => "${dnsdir}/rndc.conf",
owner => $::dns::params::user,
group => $::dns::params::group,
content => template("${module_name}/rndc.conf.erb"),
require => Package[$dns::params::dns_server_package]
}
}