--- ## PRIMARY - name: create named.conf.local for primary template: src: ../templates/named.conf.local.primary.j2 dest: /etc/bind/named.conf.local owner: bind group: bind when: inventory_hostname in groups['dnsprimary'] - name: create /etc/bind/zones if not exist ansible.builtin.file: path: /etc/bind/zones state: directory owner: bind group: bind - name: create primary zone files for primary template: src: "../templates/db.{{ item.zone }}.j2" dest: "/etc/bind/zones/db.{{ item.zone }}" owner: bind group: bind with_items: "{{ dns_zones }}" when: inventory_hostname in groups['dnsprimary'] ## REPLICA - name: create named.conf.local for replica template: src: ../templates/named.conf.local.replica.j2 dest: /etc/bind/named.conf.local owner: bind group: bind when: inventory_hostname in groups['dnsreplica'] - name: flush dns cache on replicas file: path={{ item }} state=absent with_fileglob: /var/cache/bind/db.* - name: restart bind9 service: name: bind9 state: restarted enabled: true