feat: enable selecting nameserver by fact
- enable selecting nameservers to use by region, country or all - set default for nameservers to be region
This commit is contained in:
parent
bb8bf202ac
commit
dbe11323c5
@ -57,6 +57,7 @@ profiles::base::puppet_servers:
|
||||
|
||||
profiles::dns::master::basedir: '/var/named/sources'
|
||||
profiles::dns::base::ns_role: 'roles::infra::dns::resolver'
|
||||
profiles::dns::base::use_ns: 'region'
|
||||
|
||||
profiles::packages::install:
|
||||
- bash-completion
|
||||
|
||||
@ -3,16 +3,24 @@ class profiles::dns::base (
|
||||
String $ns_role = undef,
|
||||
Array $search = [],
|
||||
Array $nameservers = ['8.8.8.8', '1.1.1.1'],
|
||||
Enum[
|
||||
'all',
|
||||
'region',
|
||||
'country'
|
||||
] $use_ns = 'all',
|
||||
){
|
||||
|
||||
# install bind_utils
|
||||
include bind::updater
|
||||
|
||||
# if ns_role is set, find all hosts matching that enc_role
|
||||
if $ns_role == undef {
|
||||
$nameserver_array = $nameservers
|
||||
}else{
|
||||
$nameserver_array = query_nodes("enc_role='${ns_role}'", 'networking.ip')
|
||||
$nameserver_array = $ns_role ? {
|
||||
undef => $nameservers,
|
||||
default => $use_ns ? {
|
||||
'all' => query_nodes("enc_role='${ns_role}'", 'networking.ip'),
|
||||
'region' => query_nodes("enc_role='${ns_role}' and region=${facts['region']}", 'networking.ip'),
|
||||
'country' => query_nodes("enc_role='${ns_role}' and country=${facts['country']}", 'networking.ip'),
|
||||
}
|
||||
}
|
||||
|
||||
# if search is undef, fallback to domainname from facts
|
||||
|
||||
Loading…
Reference in New Issue
Block a user