- 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