# == Class designate::backend::bind9 # # Configure bind9 as backend # # == Parameters # # [*rndc_config_file*] # (optional) Location of the rndc configuration file. # Defaults to '/etc/rndc.conf' # # [*rndc_key_file*] # (optional) Location of the rndc key file. # Defaults to '/etc/rndc.key' # # [*rndc_host*] # (optional) Host running DNS service. # Defaults to '127.0.0.1' # # [*rndc_port*] # (optional) Port to use for dns service on rndc_host. # Defaults to '953' # # [*rndc_controls*] # (optional) Hash defining controls configuration for rndc. # Defaults to undef, which uses the puppet-dns default # class designate::backend::bind9 ( $rndc_host = '127.0.0.1', $rndc_port = '953', $rndc_config_file = '/etc/rndc.conf', $rndc_key_file = '/etc/rndc.key', $rndc_controls = undef, ) { include ::designate::deps include ::designate if $rndc_controls { class { '::dns': controls => $rndc_controls, } } else { include ::dns } designate_config { 'backend:bind9/rndc_host' : value => $rndc_host; 'backend:bind9/rndc_port' : value => $rndc_port; 'backend:bind9/rndc_config_file' : value => $rndc_config_file; 'backend:bind9/rndc_key_file' : value => $rndc_key_file; } concat::fragment { 'dns allow-new-zones': target => $::dns::optionspath, content => 'allow-new-zones yes;', order => '20', } # Recommended by Designate docs as a mitigation for potential cache # poisoning attacks: # https://docs.openstack.org/designate/queens/admin/production-guidelines.html#bind9-mitigation concat::fragment { 'dns minimal-responses': target => $::dns::optionspath, content => 'minimal-responses yes;', order => '21', } # /var/named is root:named on RedHat and /var/cache/bind is root:bind on # Debian. Both groups only have read access but require write permission in # order to be able to use rndc addzone/delzone commands that Designate uses. # NOTE(bnemec): ensure_resource is to avoid a chicken and egg problem with # removing this from puppet-openstack-integration. Once that has been done # the ensure_resource wrapper could be removed. ensure_resource('file', $::dns::params::vardir, { mode => 'g+w', require => Package[$::dns::params::dns_server_package] }) }