# Sets up our dns-server, assumes that all zone information comes from # hiera. class profiles::dns_zones ( Hash $zones, Hash $default = {}, Optional[Hash] $views = undef, Hash $view_defaults = {}, String $default_view = '_GLOBAL_', ) { if $views != undef { class { 'dns': enable_views => true, } create_resources(dns::view, $views, $view_defaults) } create_resources(dns::zone, $zones, $default) [$_, $rev_zone] = dns_record::rev_record( $facts['networking']['ip6'], $facts['networking']['netmask6']) dns::zone { $rev_zone: reverse => true, target_views => [ $default_view, ], } dns_zone { $rev_zone: } Dns_record <<| zone == 'adrift.space' |>> Dns_record <<| zone == $rev_zone |>> $zone_hash = Hash(lookup('dns_zones."adrift.space"').map |$d| { ["adrift.space ${d['type']} ${d['key']} ${d['value']}", $d] }) create_resources(dns_record, $zone_hash, { # 'ensure' => 'present', 'zone' => 'adrift.space', # 'notify' => Dns_zone['adrift.space'], }) dns_zone { 'adrift.space': # default_ttl => '300', primary => 'ns1.adrift.space.', # email => 'domainmaster.adrift.space.', # serial => $facts['zones']['adrift.space']['serial'] + 1, # refresh => '2w', # retry => '1d', # expire => '1000h', # negative_ttl => '300', } }