]> xn--ix-yja.es Git - alex.git/commitdiff
Add support for fixing IP addresses
authoralex <alex@pdp7.net>
Sat, 4 Feb 2023 17:34:31 +0000 (18:34 +0100)
committeralex <alex@pdp7.net>
Sat, 4 Feb 2023 17:34:31 +0000 (18:34 +0100)
personal_infra/puppet/modules/dns_dhcp/manifests/init.pp
personal_infra/puppet/modules/dns_dhcp/templates/internal.epp

index 54827ef68f2e554b53aa596f86e307749742ec40..799cad2e35f746fc7f71f36f46dd9c6ad67d3fdf 100644 (file)
@@ -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,
     }),
   }
   ~>
index 8622764725577b69e1f3d71216bf4d074c1ef9d0..10f47d1ae6f8ab27be80a33f17e0455c3a184167 100644 (file)
@@ -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 %>
+<% } %>