76 lines
2.2 KiB
Django/Jinja
76 lines
2.2 KiB
Django/Jinja
# dhcpd.conf
|
|
|
|
{{ ansible_header | comment }}
|
|
|
|
{% for option in dhcp.global_options %}
|
|
option {{ option.key }} {{ option.value }};
|
|
{% endfor %}
|
|
|
|
{% for parameter in dhcp.global_parameters %}
|
|
{{ parameter.key }} {{ parameter.value }};
|
|
{% endfor %}
|
|
|
|
# The ddns-updates-style parameter controls whether or not the server will
|
|
# attempt to do a DNS update when a lease is confirmed. We default to the
|
|
# behavior of the version 2 packages ('none', since DHCP v2 didn't
|
|
# have support for DDNS.)
|
|
ddns-update-style none;
|
|
|
|
# If this DHCP server is the official DHCP server for the local
|
|
# network, the authoritative directive should be uncommented.
|
|
{% if dhcp.authoritative %}
|
|
authoritative;
|
|
{% else %}
|
|
#authoritative;
|
|
{% endif %}
|
|
|
|
# Use this to send dhcp log messages to a different log file (you also
|
|
# have to hack syslog.conf to complete the redirection).
|
|
log-facility local7;
|
|
|
|
|
|
{% if dhcp.failover is defined %}
|
|
include "./dhcp-failover.conf";
|
|
{% endif %}
|
|
|
|
|
|
{% for subnet in dhcp.subnets %}
|
|
subnet {{ subnet.network | ipaddr('network') }} netmask {{ subnet.network | ipaddr('netmask') }} {
|
|
interface "{{ interfaces[subnet.vlan] }}";
|
|
{% if subnet.default_lease_time is defined %}
|
|
default-lease-time {{ subnet.default_lease_time }};
|
|
{% endif %}
|
|
{% if subnet.max_lease_time is defined %}
|
|
max-lease-time {{ subnet.max_lease_time }};
|
|
{% endif %}
|
|
option subnet-mask {{ subnet.network | ipaddr('netmask') }};
|
|
option broadcast-address {{ subnet.network | ipaddr('broadcast') }};
|
|
{% if subnet.routers is defined %}
|
|
option routers {{ subnet.routers }};
|
|
{% endif %}
|
|
option domain-name-servers {{ subnet.dns | join(", ") }};
|
|
option domain-name "{{ subnet.domain_name }}";
|
|
option domain-search "{{ subnet.domain_search }}";
|
|
{% for option in subnet.options %}
|
|
option {{ option.key }} {{ option.value }};
|
|
{% endfor %}
|
|
{% if subnet.lease_file is defined %}
|
|
include "{{ subnet.lease_file }}";
|
|
{% endif %}
|
|
{% if subnet.range is defined %}
|
|
pool {
|
|
{% if dhcp.failover is defined %}
|
|
failover peer {{ dhcp.failover.name }}
|
|
{% endif %}
|
|
range {{ subnet.range | join(" ")}};
|
|
}
|
|
{% endif %}
|
|
|
|
{% if subnet.deny_unknown %}
|
|
deny unknown-clients;
|
|
{% else %}
|
|
allow unknown-clients;
|
|
{% endif %}
|
|
}
|
|
{% endfor %}
|