prole/infrastructure/roles/pihole_dns/tasks/main.yml

48 lines
1.4 KiB
YAML

---
- 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