Update¶
Een nieuwe release wordt altijd in een aparte map uitgepakt. Deze mag niet over de bestaande
installatie worden gekopieerd of daar direct worden uitgepakt. Het nieuwe update.sh werkt daarna
precies de als argument opgegeven instantie bij.
Voorbereiding en back-up¶
Voor elke update moet een volledige, gecontroleerde back-up beschikbaar zijn. Deze omvat ten minste:
De volledige instantiemap, met name
core/config/QisutuConfig.pmvar/secure/security.keyDe database
Eigen Apache-, proxy-, TLS- en systemd-aanpassingen
Indien nodig externe bijlagen of gekoppelde opslaglocaties
security.key is onmisbaar voor het herstellen van versleutelde e-mail-, OAuth- en
tweefactorgeheimen. Bewaar deze beschermd samen met de bijbehorende instantieback-up.
Release downloaden¶
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
Bij een update naar een latere versie moeten vanzelfsprekend de URL en mapnaam van die doelversie worden gebruikt.
Update starten¶
Productie-instantie:
sudo ./update.sh /opt/qisutu
Extra instantie:
sudo ./update.sh /opt/qisututest
De updater leest var/install/instance.conf en toont vóór bevestiging het installatiepad, de
instantie-id, het webpad, de database en de systemd-service. Breek af als een van deze waarden niet
bij de gewenste instantie hoort.
Updateverloop¶
Het script voert onder meer de volgende stappen uit:
Controleren van releasechecksums, versies, schemabestand, Perl-syntaxis en programregistratie.
Optioneel maken van een extra databasedump. Controleer vooraf de vrije ruimte onder
/var/backups.Activeren van onderhoudsmodus, stoppen van de instantiedaemon en blokkeren van nieuwe e-mailophaalacties.
Bijwerken van alle door de release beheerde programmabestanden; nieuwe bestanden worden toegevoegd en niet meer gepubliceerde beheerde bestanden verwijderd.
Behouden van lokale instantiebestanden, configuraties, logboeken, runtimegegevens en beveiligingssleutel.
Vergelijken van het databaseschema en uitvoeren van alle nog niet geregistreerde SQL- en Perl-migraties.
Doelstatus opnieuw controleren en daemon starten.
Nacontrole¶
Controleer na succesvolle afronding:
systemctl status qisutu-daemon.service
journalctl -u qisutu-daemon.service --since today
Meld u daarna aan, controleer de weergegeven Qisutu- en databaseversie en test ten minste aanmelden, ticketweergave, e-mail ophalen en e-mail verzenden. Bij meerdere instanties wordt deze controle voor elke bijgewerkte instantie afzonderlijk uitgevoerd.
Mislukte update¶
Voer het script niet herhaaldelijk uit zonder oorzaakanalyse. Bewaar de uitvoer en logboeken en controleer vrije ruimte, databasetoegang, bestandsrechten en servicestatus. Als de toestand niet duidelijk is, herstel dan de eerder gecontroleerde volledige back-up van programmamap en database samen.