72 lines
1.9 KiB
YAML
72 lines
1.9 KiB
YAML
- name: install dhcpd
|
|
apt:
|
|
name: isc-dhcp-server
|
|
state: present
|
|
|
|
- name: configure dhcp server
|
|
copy:
|
|
content: |
|
|
option dhcp-max-message-size 2048;
|
|
use-host-decl-names on;
|
|
|
|
option architecture-type code 93 = unsigned integer 16;
|
|
|
|
subnet {{server_net}}.0 netmask {{server_netmask}} {
|
|
range {{server_net}}.10 {{server_net}}.250;
|
|
default-lease-time 6000;
|
|
max-lease-time 7200;
|
|
|
|
option routers {{server_ip}};
|
|
option domain-name "{{domain_name}}";
|
|
option domain-name-servers {{server_ip}};
|
|
option time-servers {{server_ip}};
|
|
option ntp-servers {{server_ip}};
|
|
server-name {{server_name}};
|
|
next-server {{server_ip}};
|
|
|
|
allow booting;
|
|
allow bootp;
|
|
|
|
class "pxeclients" {
|
|
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
|
|
|
|
if exists user-class and option user-class = "iPXE" {
|
|
filename "menu.ipxe";
|
|
} else {
|
|
if option architecture-type = 00:09 {
|
|
filename "ipxe.efi";
|
|
} elsif option architecture-type = 00:07 {
|
|
filename "ipxe.efi";
|
|
} elsif option architecture-type = 00:06 {
|
|
filename "ipxe.efi";
|
|
} else {
|
|
filename "ipxe.pxe";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
dest: /etc/dhcp/dhcpd.conf
|
|
mode: u=rw,g=r,o=o
|
|
owner: root
|
|
group: root
|
|
# validate: dhcpd -t -cf %s
|
|
register: dhcpd_config
|
|
|
|
- name: set dhcp server interface
|
|
copy:
|
|
content: |
|
|
INTERFACESv4="{{dhcp_interface}}"
|
|
INTERFACESv6=""
|
|
dest: /etc/default/isc-dhcp-server
|
|
mode: u=rw,g=r,o=o
|
|
owner: root
|
|
group: root
|
|
register: dhcp_default_config
|
|
|
|
- name: reload dhcp
|
|
systemd:
|
|
name: isc-dhcp-server
|
|
state: restarted
|
|
when: dhcp_default_config.changed or dhcpd_config.changed
|
|
|