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.

Příprava nového balíčku aplikace

Rozbalte balíček Qisutu 2.0.2 do samostatného dočasného adresáře, nikoli do běžící instance. Poté přejděte do rozbaleného adresáře se souborem update.sh. Příklad používá strukturu popsanou v INSTALL.md; cestu upravte podle skutečného umístění rozbalených souborů.

cd /tmp/qisutu-neue-version/qisutu

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.

Aktualizace na 2.0.2

Aplikace i databáze přecházejí na 2.0.2; interní API zůstává 1.0. Synchronizace doplní chat, přítomnost u ticketů, plány reportů s příjemci a protokoly, vztahy služba-CI, přílohy FAQ a volitelný odkaz na proces ve formulářích. Tyto doplňky nemažou stávající data.

Použijte update.sh z nového balíčku pro výslovně zvolenou instanci. Aktualizace zdrojů Sphinx nebo spuštění build-all.bat neaktualizuje Qisutu ani jeho databázi.

Aktualizační program nevytváří automatickou zálohu programu. Předem musí existovat úplná záloha instance a databáze včetně var/secure/security.key. Při chybě po zahájení změn zůstává režim údržby aktivní. Odstraňte příčinu a opakujte stejnou aktualizaci; nepřepisujte nahodile jednotlivé programové nebo databázové soubory.

Potom ověřte verze, přihlášení, poštu, chat a předání, reporty, stažení FAQ a vazby služba-CI. Proces formuláře testujte pouze s nainstalovaným a aktivním KimProcesses.