- 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