- set puppet::puppetdb_api class to export puppetdb - set infra::dns::server class to export bind - set all to export node and systemd metrics
57 lines
1.1 KiB
Puppet
57 lines
1.1 KiB
Puppet
# profiles::dns::server
|
|
class profiles::dns::server (
|
|
Hash $acls = {},
|
|
Hash $zones = {},
|
|
Hash $views = {},
|
|
Hash $keys = {},
|
|
Array $forwarders = ['8.8.8.8', '1.1.1.1'],
|
|
Boolean $dnssec = true,
|
|
){
|
|
|
|
# if forwarders are empty, set it to undef
|
|
if $forwarders == [] {
|
|
$use_forwarders = undef
|
|
}else{
|
|
$use_forwarders = $forwarders
|
|
}
|
|
|
|
# setup base bind server
|
|
class { 'bind':
|
|
forwarders => $use_forwarders,
|
|
dnssec => $dnssec,
|
|
version => 'Controlled by Puppet',
|
|
statistics_port => '8053',
|
|
}
|
|
|
|
# setup bind_exporter
|
|
include prometheus::bind_exporter
|
|
|
|
# if keys, import them
|
|
$keys.each | $name, $data | {
|
|
bind::key { $name:
|
|
* => $data,
|
|
}
|
|
}
|
|
|
|
# if acls, import them
|
|
$acls.each | $name, $data | {
|
|
bind::acl { $name:
|
|
* => $data,
|
|
}
|
|
}
|
|
|
|
# if zones, import them
|
|
$zones.each | $name, $data | {
|
|
bind::zone { $name:
|
|
* => $data,
|
|
}
|
|
}
|
|
|
|
# if views, import them
|
|
$views.each | $name, $data | {
|
|
bind::view { $name:
|
|
* => $data,
|
|
}
|
|
}
|
|
}
|