aboutsummaryrefslogtreecommitdiff
path: root/personal_infra/puppet/modules
diff options
context:
space:
mode:
authoralex <alex@pdp7.net>2023-01-07 19:46:18 +0100
committeralex <alex@pdp7.net>2023-01-07 19:46:34 +0100
commit32255a6ca690a50326cd67f536b141703f8debd8 (patch)
tree96051eaeaa7b57c1581674bfc1c000f307388506 /personal_infra/puppet/modules
parent97da46ca3e1af9d22d7db7632e5e1ca03ea3c4b4 (diff)
Add dns_dhcp
Diffstat (limited to 'personal_infra/puppet/modules')
-rw-r--r--personal_infra/puppet/modules/dns_dhcp/manifests/init.pp20
-rw-r--r--personal_infra/puppet/modules/dns_dhcp/templates/internal.epp15
2 files changed, 35 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
new file mode 100644
index 00000000..c7a35520
--- /dev/null
+++ b/personal_infra/puppet/modules/dns_dhcp/manifests/init.pp
@@ -0,0 +1,20 @@
+class dns_dhcp {
+ $domain = lookup("'$ansible_inventory_hostname'.network.dns_dhcp.domain")
+
+ package {'dnsmasq':}
+ ->
+ file {'/etc/dnsmasq.d/internal':
+ content => epp('dns_dhcp/internal', {
+ 'dns_dhcp' => lookup("'$ansible_inventory_hostname'.network.dns_dhcp"),
+ }),
+ }
+ ~>
+ service {'dnsmasq':
+ enable => true,
+ ensure => running,
+ }
+ ->
+ file {'/etc/resolv.conf':
+ content => "domain ${domain}\nsearch ${domain}\nnameserver 127.0.0.1\n",
+ }
+}
diff --git a/personal_infra/puppet/modules/dns_dhcp/templates/internal.epp b/personal_infra/puppet/modules/dns_dhcp/templates/internal.epp
new file mode 100644
index 00000000..3ba1b7e9
--- /dev/null
+++ b/personal_infra/puppet/modules/dns_dhcp/templates/internal.epp
@@ -0,0 +1,15 @@
+domain-needed
+no-resolv
+no-hosts
+
+server=<%= $dns_dhcp['upstream_dns'] %>
+<% if $dns_dhcp['domain'] { %>
+local=/<%= $dns_dhcp['domain'] %>/
+domain=<%= $dns_dhcp['domain'] %>
+<% } %>
+
+<% if $dns_dhcp['dhcp_range'] { %>
+dhcp-range=<%= $dns_dhcp['dhcp_range'] %>
+
+dhcp-option=option:router,<%= $dns_dhcp['router'] %>
+<% } %>