---
- name: preseed tftpd-hpa
  debconf:
    name: tftpd-hpa
    question: tftpd-hpa/directory
    value: /var/lib/tftpboot
    vtype: string

- name: install tftpd, dhcpd and named packages
  apt:
    name:
      - isc-dhcp-server
      - tftpd-hpa
      - bind9
    state: latest

## FIXME: preseeding seems to be ignored
- name: configure TFTP root directory
  replace:
    path: /etc/default/tftpd-hpa
    regexp: '^TFTP_DIRECTORY=".*"$'
    replace: 'TFTP_DIRECTORY="/var/lib/tftpboot"'
  notify: restart tftpd-hpa

- name: serve dhcp on LAN interface       
  replace:
    path: /etc/default/isc-dhcp-server
    regexp: '^INTERFACESv4=".*"$'
    replace: 'INTERFACESv4="{{ if_lan }}"'
  notify: restart isc-dhcp-server

- name: deploy config files for isc-dhcp-server
  template:
    src: dhcpd.conf.j2
    dest: /etc/dhcp/dhcpd.conf
    backup: yes
  notify: restart isc-dhcp-server

- name: deploy config files for bind9 
  template:
    src: "{{ item }}.j2"
    dest: "/etc/bind/{{ item }}"
  loop:
    - db.intern
    - db.192.168.0
    - localzones
  notify: restart bind

- name: link zone files to writeable directory for DDNS
  file:
    src: "/etc/bind/{{ item }}"
    dest: "/var/lib/bind/{{ item }}"
    state: link
  loop:
    - db.intern
    - db.192.168.0
  notify: restart bind

- name: enable local bind config
  lineinfile:
    path: /etc/bind/named.conf.local
    line: 'include "/etc/bind/localzones";'
  notify: restart bind

- name: adapt resolv.conf
  template:
    src: resolv.conf.j2
    dest: /etc/resolv.conf
  notify: restart isc-dhcp-server

## stop dhclient from overwriting /etc/resolv.conf:
- name: supersede dhcp client data
  blockinfile:
    dest: /etc/dhcp/dhclient.conf
    block: |
      supersede domain-search "{{ ansible_domain }}";
      supersede domain-name-servers 127.0.0.1;
    insertbefore: "#send dhcp-client-identifier.*" 
  notify: restart dhcp-client

- name: generate rndc key
  command:
    cmd: rndc-confgen -a
    creates: /etc/bind/rndc.key

- name: copy rndc key
  copy:
    src: /etc/bind/rndc.key 
    dest: /etc/dhcp/
    owner: root 
    group: root
    mode: '0640'
    remote_src: yes  
  notify: restart isc-dhcp-server