Files
2026-02-21 16:54:18 +01:00

49 lines
1.4 KiB
YAML

---
- name: Install ISC DHCP server
apt:
name: isc-dhcp-server
state: present
- name: Stop and disable dnsmasq (conflicts with ISC DHCP)
systemd:
name: dnsmasq
state: stopped
enabled: no
ignore_errors: yes
- name: Configure ISC DHCP server defaults
template:
src: isc-dhcp-server.j2
dest: /etc/default/isc-dhcp-server
mode: '0644'
notify: restart isc-dhcp
- name: Get failover peer IP
set_fact:
failover_peer_ip: "{{ hostvars[item].gateway_config.wg_ip }}"
loop: "{{ groups['lab_gateways'] }}"
when:
- hostvars[item].gateway_config.lab_name == gateway_config.lab_name
- hostvars[item].gateway_config.dhcp_role in ['primary', 'secondary']
- hostvars[item].gateway_config.dhcp_role != gateway_config.dhcp_role
register: peer_search
- name: Set failover peer IP from search
set_fact:
failover_peer_ip: "{{ peer_search.results | selectattr('ansible_facts', 'defined') | map(attribute='ansible_facts.failover_peer_ip') | first }}"
when: peer_search.results | selectattr('ansible_facts', 'defined') | list | length > 0
- name: Configure DHCP failover
template:
src: dhcpd.conf.j2
dest: /etc/dhcp/dhcpd.conf
mode: '0644'
validate: 'dhcpd -t -cf %s'
notify: restart isc-dhcp
- name: Ensure ISC DHCP is enabled and started
systemd:
name: isc-dhcp-server
enabled: yes
state: started