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.pmvar/secure/security.keyDatabá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:
Kontrola kontrolních součtů release, verzí, souboru schématu, syntaxe Perlu a registrace programů.
Volitelné vytvoření dalšího dumpu databáze. Předem zkontrolujte volné místo v
/var/backups.Aktivace režimu údržby, zastavení daemonu instance a blokování nových načítání pošty.
Aktualizace všech programových souborů spravovaných releasem; nové soubory se doplní a již nevydávané spravované soubory se odstraní.
Zachování místních souborů instance, konfigurací, protokolů, běhových dat a bezpečnostního klíče.
Porovnání databázového schématu a spuštění všech dosud nezaznamenaných SQL a Perl migrací.
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.