- name: delete pdns bind.conf file: path=/etc/powerdns/pdns.d/bind.conf state=absent - name: copy bind zone file copy: src: "/var/lib/powerdns/tpl/{{ item.item }}" dest: "/var/lib/powerdns/zones/db.{{ item.item }}" remote_src: yes with_items: "{{ zonefilestask.results }}" loop_control: label: "{{ item.item }}" when: item.changed - name: set bind zone serial replace: regexp: "##sequence##" replace: "{{ ansible_date_time.epoch }}" dest: "/var/lib/powerdns/zones/db.{{ item.item }}" with_items: "{{ zonefilestask.results }}" loop_control: label: "{{ item.item }}" when: item.changed - name: restart powerdns service: name=pdns state=restarted register: powerdns_restarted - name: reload changed bind zones command: "pdns_control bind-reload-now {{ zonefilestask.results|selectattr('changed')|join(' ', attribute='item') }}" when: not powerdns_restarted | default(False) - name: purge cache command: "pdns_control purge" when: not powerdns_restarted | default(False) - name: notify slaves command: "pdns_control notify {{ item.item }}" with_items: "{{ zonefilestask.results }}" loop_control: label: "{{ item.item }}" when: - item.changed - powerdns.config.master == "yes"