# {{ ansible_managed }} # # DHCP Server Configuration file. # see /usr/share/doc/dhcp*/dhcpd.conf.example # see dhcpd.conf(5) man page # authoritative; default-lease-time 43200; # 12 hours max-lease-time 86400; # 24 hours subnet {{ dhcp_cidr|ansible.utils.ipaddr('network') }} netmask {{ dhcp_cidr|ansible.utils.ipaddr('netmask') }} { option routers {{ dhcp_gw_default }}; option domain-name-servers {{ dhcp_gw_secured }}, {{ dns_primary }}, {{ dns_secondary }}; option domain-name "{{ dhcp_domain }}"; # Dynamic IPs range {{ dhcp_range_start }} {{ dhcp_range_end }}; class "secured" { option routers {{ dhcp_gw_secured }}; match hardware; } class "cloudflare" { option domain-name-servers 1.1.1.3, 1.0.0.3; # cloudflare block malware + porn match hardware; } class "betagate" { option domain-name-servers 1.1.1.3, 1.0.0.3; # cloudflare block malware + porn option routers {{ dhcp_gw_betagate }}; match hardware; } class "devnull" { option domain-name-servers 127.0.0.1; match hardware; } # nothing in here (yet) class "default" { match hardware; } {% for node in reservations %} subclass "{{ node.type }}" 1:{{ node.mac }}; # {{ node.name }} {% endfor %} {% for node in reservations %} host {{ node.name }} { hardware ethernet {{ node.mac }}; fixed-address {{ node.ip }}; } {% endfor %} }