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':}
->
content => epp('dns_dhcp/internal', {
'dns_dhcp' => lookup("network.dns_dhcp"),
'dns_other_server_defs' => $dns_other_server_defs,
+ 'fixed_hosts' => $fixed_hosts,
}),
}
~>
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 %>
+<% } %>