Aktualizace

Nový release se vždy rozbaluje do samostatného adresáře. Nesmí se kopírovat přes existující instalaci ani rozbalit přímo do ní. Nový update.sh následně aktualizuje přesně instanci zadanou jako argument.

Příprava a záloha

Před každou aktualizací musí být k dispozici úplná a ověřená záloha. Ta zahrnuje alespoň:

  • Celý adresář instance, zejména core/config/QisutuConfig.pm

  • var/secure/security.key

  • Databáze

  • Vlastní úpravy Apache, proxy, TLS a systemd

  • V případě potřeby externí přílohy nebo připojená úložiště

security.key je nezbytný pro obnovení šifrovaných tajných údajů pošty, OAuth a dvoufaktorového ověřování. Uchovávejte jej chráněný spolu s odpovídající zálohou instance.

Stáhnout release

cd /tmp
wget https://ftp.qisutu.de/qisutu-1.0.2.tar.gz
tar xzf qisutu-1.0.2.tar.gz
cd qisutu-1.0.2

Při aktualizaci na novější verzi je samozřejmě nutné použít URL a název adresáře této cílové verze.

Spustit aktualizaci

Produkční instance:

sudo ./update.sh /opt/qisutu

Další instance:

sudo ./update.sh /opt/qisututest

Aktualizační program přečte var/install/instance.conf a před potvrzením zobrazí instalační cestu, identifikátor instance, webovou cestu, databázi a službu systemd. Přerušte jej, pokud některá z těchto hodnot nepatří požadované instanci.

Průběh aktualizace

Skript mimo jiné provede následující kroky:

  1. Kontrola kontrolních součtů release, verzí, souboru schématu, syntaxe Perlu a registrace programů.

  2. Volitelné vytvoření dalšího dumpu databáze. Předem zkontrolujte volné místo v /var/backups.

  3. Aktivace režimu údržby, zastavení daemonu instance a blokování nových načítání pošty.

  4. Aktualizace všech programových souborů spravovaných releasem; nové soubory se doplní a již nevydávané spravované soubory se odstraní.

  5. Zachování místních souborů instance, konfigurací, protokolů, běhových dat a bezpečnostního klíče.

  6. Porovnání databázového schématu a spuštění všech dosud nezaznamenaných SQL a Perl migrací.

  7. Opětovná kontrola cílového stavu a spuštění daemonu.

Následná kontrola

Po úspěšném dokončení zkontrolujte:

systemctl status qisutu-daemon.service
journalctl -u qisutu-daemon.service --since today

Poté se přihlaste, zkontrolujte zobrazenou verzi Qisutu a databáze a otestujte alespoň přihlášení, zobrazení ticketu, načítání a odesílání e-mailů. U více instancí se tato kontrola provede samostatně pro každou aktualizovanou instanci.

Neúspěšná aktualizace

Nespouštějte skript opakovaně bez analýzy příčiny. Uložte výstup a protokoly, zkontrolujte volné místo, přístup k databázi, oprávnění souborů a stav služby. Pokud není stav jednoznačný, obnovte společně dříve ověřenou úplnou zálohu programového adresáře a databáze.