--- - name: Ensure dnsmasq.d exists ansible.builtin.file: path: /etc/dnsmasq.d state: directory mode: "0755" - name: Configure dns-forward-max ansible.builtin.template: src: 99-dns-forward-max.conf.j2 dest: /etc/dnsmasq.d/99-dns-forward-max.conf owner: root group: root mode: "0644" notify: restart pihole-FTL - name: Configure Pi-hole forwarding for Samba AD + reverse zone ansible.builtin.template: src: 05-samba-ad.conf.j2 dest: /etc/dnsmasq.d/05-samba-ad.conf owner: root group: root mode: "0644" notify: restart pihole-FTL # DB resilience tweaks (safe to re-run). Stop FTL to avoid lock contention while changing journaling. - name: Stop pihole-FTL before SQLite pragmas ansible.builtin.systemd: name: pihole-FTL state: stopped - name: Enable WAL mode on Pi-hole FTL DB ansible.builtin.command: cmd: sqlite3 /etc/pihole/pihole-FTL.db "PRAGMA journal_mode=WAL;" register: wal_result changed_when: "'wal' in wal_result.stdout" - name: Set SQLite busy_timeout on Pi-hole FTL DB ansible.builtin.command: cmd: sqlite3 /etc/pihole/pihole-FTL.db "PRAGMA busy_timeout={{ pihole_sqlite_busy_timeout | default(5000) }};" register: busy_result changed_when: (pihole_sqlite_busy_timeout | default(5000) | string) in busy_result.stdout - name: Start pihole-FTL after SQLite pragmas ansible.builtin.systemd: name: pihole-FTL state: started