From 5c86a772c576840032f2f73cba3f58acc5701e23 Mon Sep 17 00:00:00 2001 From: alex Date: Sat, 4 Feb 2023 18:34:31 +0100 Subject: [PATCH] Add support for fixing IP addresses --- personal_infra/puppet/modules/dns_dhcp/manifests/init.pp | 7 ++++++- .../puppet/modules/dns_dhcp/templates/internal.epp | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/personal_infra/puppet/modules/dns_dhcp/manifests/init.pp b/personal_infra/puppet/modules/dns_dhcp/manifests/init.pp index 54827ef..799cad2 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 8622764..10f47d1 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 %> +<% } %> -- 2.47.3