Aktualisierung¶
Ein neues Release wird immer in ein separates Verzeichnis entpackt. Es darf
nicht über die vorhandene Installation kopiert oder direkt dort entpackt
werden. Das neue update.sh aktualisiert anschließend genau die als Argument
angegebene Instanz.
Vorbereitung und Sicherung¶
Vor jedem Update muss eine vollständige, geprüfte Sicherung vorhanden sein. Dazu gehören mindestens:
das vollständige Instanzverzeichnis, insbesondere
core/config/QisutuConfig.pmvar/secure/security.keydie Datenbank
eigene Apache-, Proxy-, TLS- und systemd-Anpassungen
bei Bedarf externe Anhänge oder angebundene Speicherorte
security.key ist unverzichtbar, um verschlüsselte Mail-, OAuth- und
Zwei-Faktor-Geheimnisse wiederherzustellen. Bewahren Sie ihn geschützt und
zusammen mit der passenden Instanzsicherung auf.
Release laden¶
cd /tmp
wget https://ftp.qisutu.de/qisutu-1.0.1.tar.gz
tar xzf qisutu-1.0.1.tar.gz
cd qisutu-1.0.1
Bei einem Update auf eine spätere Version muss selbstverständlich die URL und der Verzeichnisname dieser Zielversion verwendet werden.
Update starten¶
Produktivinstanz:
sudo ./update.sh /opt/qisutu
Zusätzliche Instanz:
sudo ./update.sh /opt/qisututest
Der Updater liest var/install/instance.conf und zeigt vor der Bestätigung
Installationspfad, Instanzkennung, Webpfad, Datenbank und systemd-Dienst an.
Brechen Sie ab, wenn einer dieser Werte nicht zur gewünschten Instanz gehört.
Ablauf des Updates¶
Das Skript führt unter anderem folgende Schritte aus:
Prüfen der Release-Prüfsummen, Versionsstände, Schemadatei, Perl-Syntax und Programmregistrierung.
Optionales Erstellen eines zusätzlichen Datenbankdumps. Prüfen Sie vorher den freien Platz unter
/var/backups.Aktivieren des Wartungsmodus, Stoppen des instanzbezogenen Daemons und Sperren neuer Mailabrufe.
Aktualisieren aller vom Release verwalteten Programmdateien; neue Dateien werden ergänzt und nicht mehr veröffentlichte verwaltete Dateien entfernt.
Erhalten der lokalen Instanzdateien, Konfigurationen, Protokolle, Laufzeitdaten und des Sicherheitsschlüssels.
Abgleichen des Datenbankschemas und Ausführen aller noch nicht protokollierten SQL- und Perl-Migrationen.
Erneutes Prüfen des Zielstands und Starten des Daemons.
Nachkontrolle¶
Prüfen Sie nach erfolgreichem Abschluss:
systemctl status qisutu-daemon.service
journalctl -u qisutu-daemon.service --since today
Melden Sie sich anschließend an, prüfen Sie die angezeigte Qisutu- und Datenbankversion und testen Sie mindestens Anmeldung, Ticketansicht, E-Mail-Abruf und E-Mail-Versand. Bei mehreren Instanzen wird diese Kontrolle für jede aktualisierte Instanz getrennt durchgeführt.
Fehlgeschlagenes Update¶
Starten Sie das Skript nicht wiederholt ohne Ursachenanalyse. Sichern Sie die Ausgabe und die Protokolle, prüfen Sie freien Speicherplatz, Datenbankzugriff, Dateirechte und den Dienststatus. Ist der Zustand nicht eindeutig, stellen Sie die zuvor geprüfte Komplettsicherung von Programmverzeichnis und Datenbank gemeinsam wieder her.