Wie führe ich einen Restore meiner ioBroker Installation auf einem Linux-System richtig durch??
Vorwort:
Da ich in der letzten Zeit immer wieder feststellen musste, dass sich viele User mit einem Restore sehr schwer tun, möchte ich hier mal eine Schritt für Schritt Anleitung für den Restore nach einem Crash, oder auch nach einem Hardwarewechsel, Systemwechsel oder sonstiges niederschreiben.
Grundsätzlich kann man im Vorfeld aber eines sagen, ein Restore ist bei richtiger Ausführung in wenigen Minuten erledigt und keiner braucht davor Angst haben.
Am Ende sind alle Daten wieder da und man hat ein neues System.
Aber gut fangen wir erstmal mit Grundlagen an, bevor wir tiefer einsteigen.
Vorbereitung:
Für die Vorbereitung gehe ich erst einmal davon aus, dass ihr bereits eine lauffähige ioBroker Installation habt.
Um dies hinzubekommen, gibt es 2 Wege.
Entweder ihr installiert auf euren System ein fertiges Image aus dem Downloadbereich, oder ihr setzt euch ein eigenes Linux OS auf und installiert ioBroker nach dieser Anleitung.
Was ist nun zu tun??
Wenn euer altes System die States und/oder Objekte in Redis gespeichert hatte, sollte ihr mit folgenden Befehlen erstmal auch das neue System mit dem Redis-Server ausstatten.
Solltetet ihr euch nicht sicher sein, ob ihr Redis verwendet und ihr noch Zugriff auf das alte System haben, dann bekommt ihr mit dem Befehl iobroker status
die benötigten Informationen.
Die Ausgabe sieht bei einer Verwendung von Redis wie folgt aus:
iobroker is running on this host.
At least one iobroker host is running.
Objects type: redis
States type: redis
Steht in Objects type und/oder States type "redis", müsst ihr zwingend auf dem neuen System den Redis Server installieren.
Steht hingehen bei beiden Typen "file", wird der Redis Server nicht benötigt.
Solltet ihr keinen Zugriff mehr auf das alte System haben und ihr wisst nicht, was da vorher genau konfiguriert war, dann installiert auf jeden Fall den Redis-Server im Vorfeld.
So installiert ihr Redis:
Dafür geht ihr per Putty in das Terminal und führt folgende Befehle aus:
sudo apt-get update
sudo apt-get install redis-server
sudo usermod -a -G redis iobroker
sudo reboot now
Als nächstes sollte man den Installer Fix mal durchlaufen lassen, falls irgendwo noch nicht alle Rechte auf dem System passen sollten.
Dieser Schritt ist nur eine Empfehlung und ist nicht zwingend notwendig.
Ich führe diesen Befehl allerdings immer im Vorfeld aus.
curl -sL https://iobroker.net/fix.sh | bash –
Nun installieren wir uns noch das kleine Tool "htop".
Hiermit kann man sehr gut alle laufenden Prozesse einsehen, was nicht nur für den restore Interessant sondern generell sehr nützlich sein kann.
Hierfür führt ihr folgenden Befehl aus:
sudo apt-get install htop
Nachdem dies erfolgt ist, kann es zu dem eigentlichen Restore kommen.
Restore:
Hier gibt es auch 2 Möglichkeiten:
1. Automatischer Restore mit Backitup
Wir fangen erst einmal mit der Variante des automatischen Restore mittels Backitup an.
Hier sind keinerlei Linux Kenntnisse erforderlich, da das Ganze mit der Weboberfläche von Iobroker erfolgt.
Als erstes müsst ihr euch den Adapter Backitup installieren.
Diesen findet ihr im Reiter unter Adaptern.
Ist die Installation abgeschlossen, legt ihr euer zuvor vom alten System erstelltes „ioBroker Backup“ auf eurem neuen System mit einem sftp Programm wie zum Beispiel FileZilla oder WinSCP in dem Pfad /opt/iobroker/backups ab.
Backitup kann auch eine Restore vom NAS, Dropbox oder Google Drive ausführen, aber ich persönlich finde die lokale Variante am sichersten.
Wer da bereits seine Erfahrungen hat, kann dies auch gerne testen, wir bleiben hier in dieser Anleitung aber erstmal lokal.
Wenn ihr das ioBroker Backup erfolgreich abgelegt habt, öffnet ihr nun Backitup und geht in den Tab „Wiederherstellen“.
Dort stellt ihr die „Backup-Quelle“ auf Lokal und drückt im Anschluss speichern.
Wer ALLE seine Adapter nach dem restore automatisch starten lassen möchte, der kann hier noch die Option „Start aller Adapter nach dem Restore“ aktivieren und im Anschluss ebenfalls speichern.
Sollte das Backup auf einem anderen Host wiederhergestellt werden, sollte man diese Option nicht wählen und vor dem Start der einzelnen Adapter die IP-Adressen gegebenenfalls anpassen.
Nach dem speichern können über den Button „Backups abrufen“ die vorhandenen Backups auf dem lokalen Pfad abgerufen werden.
Nun sollte euer gerade per FTP kopiertes Backup in der Liste unter „iobroker“ auftauchen.
Dieses könnt ihr nun auswählen.
Nach der Auswahl bekommt ihr einen Hinweis, dass iobroker für den Restore gestoppt und im Anschluss wieder gestartet wird.
Hier habt ihr den eigentlichen Wiederherstellungsvorgang gestartet.
In eurem Browser öffnet sich nun ein weiterer Tab, in dem ihr den Wiederherstellungsprozess wie auf der Konsole im WebUI von Backitup verfolgen könnt.
Nachdem die Wiederherstellung erfolgreich abgeschlossen wurde, bekommt ihr die Meldung ebenfalls im WebUi des Restores.
Die Wiederherstellung kann je nach Leistung des Systems und Größe der alten ioBroker Installation etwas Zeit brauchen.
Im Normalfall sollte der restore nach ca. 10-15 Minuten erledigt und ioBroker automatisch wieder gestartet sein.
In ganz seltenen Fällen kommt es vor, dass ioBroker nicht automatisch nach Restore startet.
Falls dies der Fall ist, könnt ihr den iobroker manuell mit folgende Befehl über die Konsole starten.
iobroker start
Nun sollte euer ioBroker wieder starten und ihr könnt im Reiter „Log“ sehen, dass alle Adapter, die auf eurem alten System installiert waren, gerade neu vom npm installiert werden.
Hier müsst ihr nun geduldig sein und iobroker einfach machen lassen.
In den Instanzen könnt ihr sehen, welche Adapter so nach und nach installiert sind.
Alle Adapter die noch bei der Installation bzw. in der Warteschleife sind, haben noch kein Icon in den Instanzen.
Seit hier bitte geduldig und lasst iobroker ohne neu zu starten einfach machen.
Je nach Größe der Installation und Geschwindigkeit eures Rechners und der Internetverbindung kann dies locker 2-3 Stunden dauern.
Herzlichen Glückwunsch, nun habt ihr ein neu installiertes System mit all euren Einstellungen, Skripten, Visualisierungen usw.
Nun habt ihr mit Backitup noch die Möglichkeit weitere Daten wiederherzustellen, falls ihr diese im Vorfeld auch auf eurem alten System gesichert habt.
Ihr könnt die Redis-Datenbank, die Zigbee-Datenbank, die mySql-Datenbank und eure History-Daten mit den gleichen Schritten, wie oben beschrieben wiederherstellen.
Die Liste der abgerufenen Backups würde dann wie hier im Beispiel aussehen.
2. manueller Restore mit den Terminal Befehlen
Als erstes müssen wir hier über Putty oder ähnliches ein paar Befehle absetzen
Als erstes erstellen wir einen Backup-Ordner:
sudo mkdir /opt/iobroker/backups
Auch hier müsst ihr im Anschluss mit einem sftp Programm wie z.B. FileZilla oder WinSCP euer auf dem alten System erstelltes Backup und gegebenenfalls auch Redis Backup, zigbee Backup usw. in den Ordner /opt/iobroker/backups ablegen.
Wer seine states und Objekte in der Redis DB speichert, sollte hier zuerst die gesicherte Redis Datenbank wiederherstellen.
Wer lediglich die states unter Redis laufen hat, braucht dies nicht zwingend im Vorfeld tun.
Ist dies erfolgt, führt stoppt ihr euren ioBroker wie folgt:
iobroker stop
Im Anschluss prüft bitte, ob alles gestoppt ist mit folgenden Befehlen:
iobroker status
Wenn alle Ausgaben korrekt sind und iobroker gestoppt wurde, könnt ihr nun mit folgenden Befehlen den Restore über die Konsole ausführen:
cd /opt/iobroker
iobroker restore <Dateiname eures Backups>
Hierbei ist aber ganz wichtig, dass ihr nur ein ioBroker Backup mit dieser Methode wiederherstellen könnt. Ein Redis-Backup, Zigbee-Backup, mySql-Backup, oder die History-Daten könnt ihr mit dem Befehl nicht herstellen.
Hierfür wird Backitup benötigt, da diese speziell mit Backitup erstellt wurden.
Dies kann jetzt je nach System ein paar Minuten dauern.
Den Fortschritt seht ihr im Terminal.
Wenn der Restore abgeschlossen ist, könnt ihr mit folgenden Befehl ioBroker wieder starten:
iobroker start
Auch hier werden nun alle Adapter einzeln von ioBroker über npm neu installiert.
Dies kann je nach Größe eurer Installation, eurer Internetgeschwindigkeit und Leistung eures Systems eine Weile dauern.
Ihr könnt den Status im Reiter „Log“ verfolgen.
Ihr habt es nun geschafft und euer System neu installiert und alle Einstellungen, Skripte, Visualisierungen usw. wiederhergestellt.
Fazit:
Grundsätzlich führen beide Varianten zum gleichen Ergebnis.
Wer wenig Erfahrungen mit terminal Befehlen hat und sich da unsicher fühlt, der ist mit Backitup auf der sicheren Seite.
Wer allerdings genau sehen möchte, was gerade auf seinem System passiert, der sollte die manuelle Variante über die Konsole wählen. Hier sieht man jeden einzelnen Vorgang im Detail im Terminal.
Ich hoffe ich konnte für den einen oder anderen etwas Licht ins Dunkel bringen und freue mich auf euer Feedback.
VG
simatec