Ich betreibe in meinem HomeLab zwei physisch voneinander getrennte Pi-hole Ad Blocker & DNS Server. In diesem Tutorial will ich euch zeigen wie Ihr diese synchronisieren könnt. Wenn Ihr z.b. DNS Records oder andere Dinge verändert werden diese Konfigurationen automatisch auf das zweite Pi-hole System übertragen.
Dazu nutze ich dieses Repository: https://github.com/vmstan/gravity-sync
Nachdem Ihr nun Pi-hole erfolgreich installiert habt, öffnet Ihr einen Terminal auf beiden Pi-hole Systemen und fügt folgenden Befehl ein:
curl -sSL https://raw.githubusercontent.com/vmstan/gs-install/main/gs-install.sh | bash
Auf der Linken Seite ist mein “Master” Pi-hole der die IP Adresse 192.168.2.247 hat. Auf der rechten Seite mein “Slave” Pi-hole mit der IP Adresse 192.168.2.248.
Somit geben wir im linken Terminal die IP 192.168.2.248 vom “Slave” Pi-hole ein da dieser hier der Remote Pi-hole ist und im rechten Terminal dann die IP vom Master 192.168.2.247
Dann werdet Ihr nach einen User vom jeweiligen Remote Pi-hole gefragt. Hier gebt Ihr ganz einfach euren SSH Benutzernamen mit dem Ihr euch im Terminal einloggen könnt ein. Ich nutze hier den root User, Ihr könnt aber natürlich auch einen “normalen” Benutzer verwenden.
Jetzt gebt Ihr noch kurz das dazugehörige Passwort ein.
Gleich darauf folgt eine Abfrage falls Ihr Pi-hole im Docker Container am laufen habt. Hier müsst Ihr dann den localen Container Namen (also auf dem jeweiligen System) und den Remote Container Namen eingeben. Keine Sorge es werden alle entdeckten Container angezeigt.
Nun ist die eigentliche Installation Abgeschlossen und Ihr müsst die aktuell verwendete Konfiguration auf dem “Master” Pi-hole zum Remote Pi-hole (“Slave”) pushen. Dazu gebt Ihr im “Master” Pi-hole Terminal diesen Befehl ein
gravity-sync push
Nachdem der push erfolgreich abgeschlossen wurde wollen wir das ganze dann natürlich Automatisieren.
Hier gibt es nun verschiedene Möglichkeiten:
gravity-sync auto hour
gravity-sync auto half
gravity-sync auto quad
Ich wähle hier das Synchronisieren alle 30min. Somit gebe ich im “Master” Pi-hole diesen Befehl ein:
gravity-sync auto half
Und schon werden beide Pi-hole Instanzen alle 30min. miteinander verglichen und falls benötigt angeglichen.