🌐 Nebula Sync

Nebula Sync is used to synchronize multiple Pi‑hole instances in this homelab, ensuring consistent blocklists, local DNS records, and configuration settings across all nodes.

⚠️ This is not a true high-availability cluster — it copies state on a scheduled or manual basis. Changes should always be made on the primary Pi‑hole.


⚙️ Purpose

Nebula Sync helps in environments where:


📦 Installation & Deployment

Nebula Sync is installed and configured using Ansible:

ansible-playbook -k -i inventory/dns/inventory.ini playbooks/dns/deploy_nebulasync.yml

🔹 Steps (Conceptual)

  1. Configure primary and replica Pi‑hole instances in the inventory.
  2. Apply the nebulasync_setup role using Ansible.
  3. Verify sync configuration and schedules.
  4. Monitor logs and health checks to ensure successful propagation.

💡 Recommended to schedule syncs during off-peak hours to avoid DNS resolution delays.


🖥️ Configuration Overview

Primary → Replica model:

What is synced:

What is NOT synced:

📝 DHCP remains authoritative on the existing DHCP server and is not shared between Pi-hole instances.


📡 Usage Notes

# Example: check Nebula Sync status
journalctl -u nebula-sync.service

📌 Best Practices

  1. Always edit primary Pi‑hole only.
  2. Enable logging for sync verification.
  3. Test sync after major updates or adding new blocklists.
  4. Monitor network connectivity between primary and replicas.
  5. Schedule regular sync intervals appropriate for the environment (e.g., hourly, daily).

🔗 References