]> xn--ix-yja.es Git - alex.git/commitdiff
Configure other DNS internal servers
authoralex <alex@pdp7.net>
Sun, 15 Jan 2023 19:45:53 +0000 (20:45 +0100)
committeralex <alex@pdp7.net>
Sun, 15 Jan 2023 19:45:53 +0000 (20:45 +0100)
personal_infra/puppet/modules/dns_dhcp/manifests/init.pp
personal_infra/puppet/modules/dns_dhcp/templates/internal.epp
personal_infra/puppet/site/01-dns.pp [new file with mode: 0644]

index 358633afa031299a7af3da0dec8d9e0408a23f52..237f14c08e3e59117bc2bc8c38e2507ed487d2e8 100644 (file)
@@ -6,6 +6,7 @@ class dns_dhcp {
   file {'/etc/dnsmasq.d/internal':
     content => epp('dns_dhcp/internal', {
       'dns_dhcp' => lookup("network.dns_dhcp"),
+      'dns_other_server_defs' => $dns_other_server_defs,
     }),
   }
   ~>
index 779df276e714205f3783c52bb14c720e2325b835..8622764725577b69e1f3d71216bf4d074c1ef9d0 100644 (file)
@@ -15,3 +15,8 @@ dhcp-option=option:router,<%= $dns_dhcp['router'] %>
 <% } %>
 
 interface=<%= join($dns_dhcp['interfaces'], ',') %>
+
+<% $dns_other_server_defs.each |$server_def| { %>
+server=/<%= $server_def['network_name'] %>/<%= $server_def['dns_ip'] %>
+rev-server=<%= $server_def['reverse_ip_range'] %>,<%= $server_def['dns_ip'] %>
+<% } %>
diff --git a/personal_infra/puppet/site/01-dns.pp b/personal_infra/puppet/site/01-dns.pp
new file mode 100644 (file)
index 0000000..eab766a
--- /dev/null
@@ -0,0 +1,10 @@
+$dns_source_hosts = lookup("dns.source_hosts")
+$dns_other_hosts = $dns_source_hosts.filter |$host_name| { $host_name != $facts["networking"]["fqdn"] }
+
+$dns_other_server_defs = $dns_other_hosts.map |$host_name| {
+  {
+    network_name => join([lookup("hostvars.'$host_name'.network.network_name"), lookup('dns.internal_domain')], '.'),
+    reverse_ip_range => lookup("hostvars.'$host_name'.network.self_internal_network"),
+    dns_ip => lookup("hostvars.'$host_name'.network.self_internal_ip"),
+  }
+}