Pi-hole mit Keepalived und GlusterFS

Ich habe mir heute Pi-hole "hochverfügbar" eingerichtet.

Dazu habe ich zunächst per GlusterFS die Daten auf zwei Raspberry Pis synchronisiert. Nebenbei: /etc/pi-hole ist jetzt ein sog. "Bind-Mount" auf das Verzeichnis, in dem per GlusterFS die Dateien für Pi-hole liegen. Das ist in meinem Fall /data/brick01/pihole.

Meine /etc/fstab (auf dem anderen Pi wird mit der IP-Adresse des anderen Pis gemountet):

192.168.50.5:brick01    /data/brick01   glusterfs       defaults        0 0
/data/brick01/pihole   /etc/pihole     none            bind            0 0

Per keepalived starte und stoppe ich den FTL-Prozess von Pi-hole dann, je nachdem, ob der Rechner jetzt der primäre Server ist, oder (wieder) der sekundäre. Keepalived startet übrigens auch nur, wenn die Mounts auch erfolgreich waren. Dazu habe ich die SystemD-Unit überschrieben:

[Unit]
Description=Pi-hole FTLDNS
After=network.target glusterd.service etc-pihole.mount
Requires=glusterd.service etc-pihole.mount
Wants=nss-lookup.target
Before=nss-lookup.target

[Service]
User=root
Group=root
PermissionsStartOnly=true

Type=forking
PIDFile=/run/pihole-FTL.pid

ExecStartPre=/bin/touch /var/log/pihole-FTL.log /run/pihole-FTL.pid /run/pihole-FTL.port /var/log/pihole.log
ExecStartPre=/bin/rm -f /dev/shm/FTL-
ExecStartPre=/bin/mkdir -p /var/run/pihole /var/log/pihole
ExecStartPre=/bin/chown pihole:pihole /var/run/pihole /var/log/pihole
ExecStartPre=-/bin/rm -f /var/run/pihole/FTL.sock /dev/shm/FTL-
ExecStartPre=/bin/chown pihole:pihole /var/log/pihole-FTL.log /run/pihole-FTL.pid /run/pihole-FTL.port /etc/pihole /etc/pihole/dhcp.leases /var/log/pihole.log
ExecStartPre=/bin/chmod 0644 /var/log/pihole-FTL.log /run/pihole-FTL.pid /run/pihole-FTL.port /var/log/pihole.log
ExecStartPre=/bin/echo "nameserver 127.0.0.1" | /sbin/resolvconf -a lo.piholeFTL

ExecStopPost=/bin/rm -f /dev/shm/FTL-*

ExecStart=/usr/bin/pihole-FTL
RestartSec=30s
ExecReload=/bin/kill -HUP $MAINPID
TimeoutStopSec=10s
ProtectSystem=full
ReadWriteDirectories=/etc/pihole

[Install]
WantedBy=multi-user.target

Leider werden in /dev/shm die Einträge für FTL nicht ordentlich weggeräumt. deshalb erledige ich das in meiner Unit zusätzlich.

Trackbacks

Trackback-URL für diesen Eintrag

Dieser Link ist nicht aktiv. Er enthält die Trackback-URI zu diesem Eintrag. Sie können diese URI benutzen, um Ping- und Trackbacks von Ihrem eigenen Blog zu diesem Eintrag zu schicken. Um den Link zu kopieren, klicken Sie ihn mit der rechten Maustaste an und wählen "Verknüpfung kopieren" im Internet Explorer oder "Linkadresse kopieren" in Mozilla/Firefox.

Keine Trackbacks

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Noch keine Kommentare

Die Kommentarfunktion wurde vom Besitzer dieses Blogs in diesem Eintrag deaktiviert.