# 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_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 { default: primary => 'ns1.adrift.space.', email => 'hugo.hornquist.se.', soa_refresh => '2w', negative_ttl => '300', ; 'adrift.space': ns => [ 'ns1', 'ns2', ], ; $rev_zone: ns => [ 'ns1.adrift.space.', 'ns2.adrift.space.', ] } }