diff options
Diffstat (limited to 'personal_infra')
| -rw-r--r-- | personal_infra/puppet/modules/dns_dhcp/manifests/init.pp | 7 | ||||
| -rw-r--r-- | personal_infra/puppet/modules/dns_dhcp/templates/internal.epp | 4 |
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 %> +<% } %> |
