Ich habe einen Backup Proxmox VE, der nur dann zum Einsatz kommt, wenn der andere Proxmox VE nicht läuft.
Aber auch dieser Backup Proxmox VE muss auf dem aktuellen Stand gehalten werden und somit wird dieser in unregelmäßigen Abständen immer mal aktualisiert, da ein LXC immer mit gestartet werden muss.
Dieser eine LXC stellt im Notfall die Verbindung nach Außen her, also die benötigte VPN Verbindung, damit ich von überall darauf zugreifen kann.
Da die LXCs/VMs auf dem Backup Proxmox VE die selben IP-Adressen haben, wie die auf dem Proxmox VE, kommt es zum IP-Adressenkonflikt.
Heute die Erleuchtung und fix das einst schon erstellte Script angepasst und nun wird nach dem Start, verzögert 10 Sekunden, des Backup Proxmox VE geprüft ob der entsprechende LXC im Netzwerk gefunden wird oder nicht. Wird dieser gefunden dann wird dieser nicht gestartet.
Wird dieser dagegen nicht gefunden, dann wird dieser gestartet und ich kann aus der Ferne die restlichen Container starten, die im Notfall benötigt werden, damit die Homematic usw. erstmal wieder läuft, bis man zu Hause ist und das Problem beheben kann.
Ja, den Backup Proxmox VE kann ich aus der Ferne anschalten, solange ich eine Internetverbindung habe, deshalb hat auch die FritzBox den Ausfallschutz, deshalb läuft das VPN über Hetzner, wegen der IPV4 Adresse.
Das ist aber ein anderes Kapitel.
Hier nun das Script. Name kann natürlich angepasst werden und muss auch im Laufe angepasst werden.
nano lxcvpnstart.sh
Das hineinkopieren und seiner Umgebung anpassen, wie die zu scannende IP Adresse “192.168.xxx.xxx” und welcher LXC gestartet werden soll “pct start XXX”
#!/bin/bash
# Liste der IPs oder Hostnamen der Computer und Container
TARGETS=("192.168.xxx.xxx")
# Ping-Intervall in Sekunden
INTERVAL=5
# Funktion f r die Aktion bei 100 % Verlust
handle_failure() {
local target=$1
echo "LXC (richtigen Namen vergeben) im Netzwerk nicht gefunden, LXC (richtigen Namen vergeben) wird gestartet."
# Hier k nnen zus tzliche Aktionen eingef gt werden, wie zum Beispiel:
# - Benachrichtigung per E-Mail senden
# - Neustart des Containers
# - Log-Eintrag schreiben
pct start XXX
}
# Endlosschleife
while true; do
for target in "${TARGETS[@]}"; do
# Pinge das Ziel und analysiere den Verlust
if ping -c 4 -W 2 "$target" | grep -q "100% packet loss"; then
handle_failure "$target"
else
echo "LXC (richtigen Namen vergeben) im Netzwerk gefunden, LXC wird nicht gestartet."
fi
done
# Warte bis zum n chsten Durchlauf
#sleep "300"
exit
done
Nach dem Speichern und Beenden muss das Script noch ausführbar gemacht werden…
chmod +x lxcvpnstart.sh
Nun kann man es testen
./lxcvpnstart.sh
Nun den Cronjob erstellen, damit nach dem Start von Proxmox der ganze Spaß ausgeführt wird…
nano /etc/crontab
Das angepasst einfügen…
#LXC starten wenn dieser nicht läuft
@reboot root sleep 10 && /root/lxcvpnstart.sh