Aggiornamento

Una nuova release viene sempre estratta in una directory separata. Non deve essere copiata sopra l’installazione esistente né estratta direttamente al suo interno. Il nuovo update.sh aggiorna quindi esattamente l’istanza indicata come argomento.

Preparazione e backup

Prima di ogni aggiornamento deve essere disponibile un backup completo e verificato. Deve includere almeno:

  • L’intera directory dell’istanza, in particolare core/config/QisutuConfig.pm

  • var/secure/security.key

  • Il database

  • Personalizzazioni proprie di Apache, proxy, TLS e systemd

  • Se necessario, allegati esterni o posizioni di archiviazione collegate

security.key è indispensabile per ripristinare i segreti crittografati di posta, OAuth e autenticazione a due fattori. Conservarlo protetto insieme al backup corrispondente dell’istanza.

Scaricare la 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

Durante l’aggiornamento a una versione successiva è naturalmente necessario utilizzare l’URL e il nome della directory della versione di destinazione.

Avviare l’aggiornamento

Istanza di produzione:

sudo ./update.sh /opt/qisutu

Istanza aggiuntiva:

sudo ./update.sh /opt/qisututest

L’updater legge var/install/instance.conf e mostra prima della conferma percorso di installazione, identificatore dell’istanza, percorso web, database e servizio systemd. Interrompere se uno di questi valori non appartiene all’istanza desiderata.

Procedura di aggiornamento

Lo script esegue, tra l’altro, i seguenti passaggi:

  1. Verifica dei checksum della release, delle versioni, del file di schema, della sintassi Perl e della registrazione dei programmi.

  2. Creazione facoltativa di un dump aggiuntivo del database. Controllare prima lo spazio libero in /var/backups.

  3. Attivazione della modalità manutenzione, arresto del daemon dell’istanza e blocco di nuovi recuperi della posta.

  4. Aggiornamento di tutti i file del programma gestiti dalla release; vengono aggiunti i nuovi file e rimossi i file gestiti non più pubblicati.

  5. Conservazione di file locali dell’istanza, configurazioni, registri, dati di esecuzione e chiave di sicurezza.

  6. Confronto dello schema del database ed esecuzione di tutte le migrazioni SQL e Perl non ancora registrate.

  7. Nuova verifica dello stato di destinazione e avvio del daemon.

Controllo successivo

Dopo il completamento riuscito, controllare:

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

Accedere quindi, controllare le versioni Qisutu e database visualizzate e testare almeno accesso, visualizzazione dei ticket, recupero e invio e-mail. In presenza di più istanze, il controllo viene eseguito separatamente per ogni istanza aggiornata.

Aggiornamento non riuscito

Non eseguire ripetutamente lo script senza analizzare la causa. Salvare output e registri, controllare spazio libero, accesso al database, permessi dei file e stato del servizio. Se lo stato non è chiaro, ripristinare insieme il backup completo precedentemente verificato della directory del programma e del database.