56 lines
1.4 KiB
YAML
56 lines
1.4 KiB
YAML
- name: Install DHCP packages
|
|
apt:
|
|
name: isc-dhcp-server
|
|
state: present
|
|
install_recommends: no
|
|
- name: Set DHCP configurations from templates
|
|
template:
|
|
src: "{{ item }}"
|
|
dest: "/etc/dhcp/{{ item }}"
|
|
owner: root
|
|
group: root
|
|
mode: "u=rw,g=r,o=r"
|
|
loop:
|
|
- dhcpd.conf
|
|
- partner.conf
|
|
notify: restart-dhcp
|
|
- name: Set rndc.key from template
|
|
template:
|
|
src: rndc.key
|
|
dest: /etc/dhcp/rndc.key
|
|
owner: root
|
|
group: root
|
|
mode: u=rw,g=r,o=
|
|
notify: restart-dhcp
|
|
- name: Ensure that the directories exist
|
|
file:
|
|
path: "/etc/dhcp/subnets"
|
|
state: directory
|
|
owner: root
|
|
group: root
|
|
mode: "0755"
|
|
- name: Map subnets
|
|
copy:
|
|
content: "{{ item.value }}"
|
|
dest: "/etc/dhcp/subnets/{{ item.key }}"
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
loop: "{{ subnets_files | dict2items }}"
|
|
- name: Get default IPv4 interface
|
|
command: ip -o -4 route show default
|
|
register: default_route
|
|
- name: Extract interface default name
|
|
set_fact:
|
|
active_interface: "{{ default_route.stdout.split()[-1] }}"
|
|
- name: Disable IPv6
|
|
replace:
|
|
path: /etc/default/isc-dhcp-server
|
|
regexp: '^INTERFACESv6="(.*)"'
|
|
replace: '#INTERFACESv6="\1"'
|
|
- name: Set interface IPv4
|
|
lineinfile:
|
|
path: /etc/default/isc-dhcp-server
|
|
regexp: '^INTERFACESv4='
|
|
line: 'INTERFACESv4="{{ active_interface }}"'
|
|
state: present |