aboutsummaryrefslogtreecommitdiff
path: root/personal_infra
diff options
context:
space:
mode:
Diffstat (limited to 'personal_infra')
-rw-r--r--personal_infra/puppet/modules/dns_dhcp/manifests/init.pp7
-rw-r--r--personal_infra/puppet/modules/dns_dhcp/templates/internal.epp4
2 files changed, 10 insertions, 1 deletions
diff --git a/personal_infra/puppet/modules/dns_dhcp/manifests/init.pp b/personal_infra/puppet/modules/dns_dhcp/manifests/init.pp
index 54827ef6..799cad2e 100644
--- a/personal_infra/puppet/modules/dns_dhcp/manifests/init.pp
+++ b/personal_infra/puppet/modules/dns_dhcp/manifests/init.pp
@@ -1,5 +1,9 @@
class dns_dhcp {
- $domain = lookup("network.dns_dhcp.domain")
+ $domain = lookup('network.dns_dhcp.domain')
+
+ $hostvars = lookup('hostvars')
+ $fixed_host_vars = $hostvars.filter |$host, $vars| { $vars['network'] and $vars['network']['dhcp_server'] == $facts["networking"]["fqdn"] }
+ $fixed_hosts = Hash($fixed_host_vars.map |$host, $vars| { [$host.match(/^[a-z0-9]+/)[0], $vars['network']['ip'] ] })
package {'dnsmasq':}
->
@@ -12,6 +16,7 @@ class dns_dhcp {
content => epp('dns_dhcp/internal', {
'dns_dhcp' => lookup("network.dns_dhcp"),
'dns_other_server_defs' => $dns_other_server_defs,
+ 'fixed_hosts' => $fixed_hosts,
}),
}
~>
diff --git a/personal_infra/puppet/modules/dns_dhcp/templates/internal.epp b/personal_infra/puppet/modules/dns_dhcp/templates/internal.epp
index 86227647..10f47d1a 100644
--- a/personal_infra/puppet/modules/dns_dhcp/templates/internal.epp
+++ b/personal_infra/puppet/modules/dns_dhcp/templates/internal.epp
@@ -20,3 +20,7 @@ interface=<%= join($dns_dhcp['interfaces'], ',') %>
server=/<%= $server_def['network_name'] %>/<%= $server_def['dns_ip'] %>
rev-server=<%= $server_def['reverse_ip_range'] %>,<%= $server_def['dns_ip'] %>
<% } %>
+
+<% $fixed_hosts.each |$host, $ip| { %>
+dhcp-host=<%= $host %>,<%= $ip %>,<%= $host %>
+<% } %>