puppet-prod/site/profiles/manifests/dns/server.pp
Ben Vincent a21b7ffc96 feat: setup metrics agents
- set puppet::puppetdb_api class to export puppetdb
- set infra::dns::server class to export bind
- set all to export node and systemd metrics
2023-11-17 23:12:37 +11:00

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,
}
}
}