aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--personal_infra/puppet/modules/dns_dhcp/manifests/init.pp1
-rw-r--r--personal_infra/puppet/modules/dns_dhcp/templates/internal.epp5
-rw-r--r--personal_infra/puppet/site/01-dns.pp10
3 files changed, 16 insertions, 0 deletions
diff --git a/personal_infra/puppet/modules/dns_dhcp/manifests/init.pp b/personal_infra/puppet/modules/dns_dhcp/manifests/init.pp
index 358633af..237f14c0 100644
--- a/personal_infra/puppet/modules/dns_dhcp/manifests/init.pp
+++ b/personal_infra/puppet/modules/dns_dhcp/manifests/init.pp
@@ -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,
}),
}
~>
diff --git a/personal_infra/puppet/modules/dns_dhcp/templates/internal.epp b/personal_infra/puppet/modules/dns_dhcp/templates/internal.epp
index 779df276..86227647 100644
--- a/personal_infra/puppet/modules/dns_dhcp/templates/internal.epp
+++ b/personal_infra/puppet/modules/dns_dhcp/templates/internal.epp
@@ -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
index 00000000..eab766a4
--- /dev/null
+++ b/personal_infra/puppet/site/01-dns.pp
@@ -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"),
+ }
+}