Zack Williams | 9fc21d7 | 2020-11-22 22:36:54 -0700 | [diff] [blame] | 1 | # dhcpd templates/dhcpd.conf.j2 - {{ ansible_managed }} |
| 2 | {# |
| 3 | SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org> |
| 4 | SPDX-License-Identifier: Apache-2.0 |
| 5 | #} |
| 6 | |
| 7 | # global lease options |
| 8 | default-lease-time {{ subnet.lease_time | default("240") }}; |
| 9 | max-lease-time {{ subnet.max_lease_time | default("480") }}; |
| 10 | |
Zack Williams | c1d528f | 2020-12-09 13:25:18 -0700 | [diff] [blame^] | 11 | # option definitions |
| 12 | option rfc3442-classless-static-routes code 121 = array of integer 8; |
| 13 | |
Zack Williams | 9fc21d7 | 2020-11-22 22:36:54 -0700 | [diff] [blame] | 14 | {% for subnet in dhcpd_subnets %} |
| 15 | subnet {{ subnet.subnet | ipaddr('network') }} netmask {{ subnet.subnet | ipaddr('netmask') }} { |
| 16 | |
| 17 | # routing |
| 18 | {% if subnet.routers is defined %} |
Zack Williams | c1d528f | 2020-12-09 13:25:18 -0700 | [diff] [blame^] | 19 | # custom router IP set |
Zack Williams | 9fc21d7 | 2020-11-22 22:36:54 -0700 | [diff] [blame] | 20 | option routers {{ subnet.routers }}; |
Zack Williams | c1d528f | 2020-12-09 13:25:18 -0700 | [diff] [blame^] | 21 | option rfc3442-classless-static-routes {{ subnet.subnet | ipaddr('prefix') }}, {{ subnet.subnet | ipaddr('network') | regex_replace('\.', ', ')}}, {{ subnet.routers | ipaddr('network') | regex_replace('\.', ', ')}}; |
Zack Williams | 9fc21d7 | 2020-11-22 22:36:54 -0700 | [diff] [blame] | 22 | {% else %} |
Zack Williams | c1d528f | 2020-12-09 13:25:18 -0700 | [diff] [blame^] | 23 | # first IP address in range used as router |
Zack Williams | 9fc21d7 | 2020-11-22 22:36:54 -0700 | [diff] [blame] | 24 | option routers {{ subnet.subnet | ipaddr('next_usable') }}; |
| 25 | {% endif %} |
| 26 | |
| 27 | # DNS/naming options |
| 28 | option domain-name-servers {{ subnet.dns_servers | join(", ") }}; |
| 29 | option domain-name "{{ subnet.dns_search [0] }}"; |
| 30 | option domain-search "{{ subnet.dns_search | join('", "') }}"; |
| 31 | |
| 32 | {% if subnet.tftpd_server is defined %} |
| 33 | # tftpd options |
| 34 | filename "{{ subnet.pxe_filename | default(dhcpd_pxe_filename) }}"; |
| 35 | next-server {{ subnet.tftpd_server }}; |
| 36 | |
| 37 | {% endif %} |
| 38 | {% if subnet.range is defined %} |
| 39 | range {{ subnet.range | ipaddr('next_usable') }} {{ subnet.range | ipaddr('last_usable') }}; |
Zack Williams | 9fc21d7 | 2020-11-22 22:36:54 -0700 | [diff] [blame] | 40 | {% endif %} |
Zack Williams | bd97027 | 2020-11-30 22:59:00 -0700 | [diff] [blame] | 41 | } |
| 42 | |
Zack Williams | 9fc21d7 | 2020-11-22 22:36:54 -0700 | [diff] [blame] | 43 | {% if subnet.hosts is defined %} |
Zack Williams | bd97027 | 2020-11-30 22:59:00 -0700 | [diff] [blame] | 44 | # hosts for subnet: {{ subnet.dns_search [0] }} |
Zack Williams | 9fc21d7 | 2020-11-22 22:36:54 -0700 | [diff] [blame] | 45 | {% for host in subnet.hosts %} |
Zack Williams | bd97027 | 2020-11-30 22:59:00 -0700 | [diff] [blame] | 46 | host {{ host.name }}.{{ subnet.dns_search [0] }} { |
| 47 | option host-name "{{ host.name }}"; |
| 48 | fixed-address {{ host.ip_addr }}; |
| 49 | hardware ethernet {{ host.mac_addr | hwaddr('linux') }}; |
Zack Williams | 9fc21d7 | 2020-11-22 22:36:54 -0700 | [diff] [blame] | 50 | {% if host.pxe_filename is defined %} |
Zack Williams | bd97027 | 2020-11-30 22:59:00 -0700 | [diff] [blame] | 51 | filename "{{ host.pxe_filename }}"; |
Zack Williams | 9fc21d7 | 2020-11-22 22:36:54 -0700 | [diff] [blame] | 52 | {% endif %} |
| 53 | {% if host.default_url is defined %} |
Zack Williams | bd97027 | 2020-11-30 22:59:00 -0700 | [diff] [blame] | 54 | option default-url "{{ host.default_url }}"; |
Zack Williams | 9fc21d7 | 2020-11-22 22:36:54 -0700 | [diff] [blame] | 55 | {% endif %} |
Zack Williams | bd97027 | 2020-11-30 22:59:00 -0700 | [diff] [blame] | 56 | } |
Zack Williams | 9fc21d7 | 2020-11-22 22:36:54 -0700 | [diff] [blame] | 57 | |
| 58 | {% endfor %} |
| 59 | {% endif %} |
Zack Williams | bd97027 | 2020-11-30 22:59:00 -0700 | [diff] [blame] | 60 | |
Zack Williams | 9fc21d7 | 2020-11-22 22:36:54 -0700 | [diff] [blame] | 61 | {% endfor %} |