Utente:Svalo/Aggiornamento Servizi

Da EigenWiki.
Vai alla navigazione Vai alla ricerca

Un po' di appunti su come aggiornare i servizi che abbiamo.

Come regola generale, quando possibile, fai un backup dei dati e del DB prima di cominciare, meglio se con il servizio fermo così non c'è il rischio che avvengano modifiche.


Più in dettaglio le procedure per i diversi servizi:


Sito

  • Collegati al server
  • Diventa l'utente che fa girare il sito
  • Nella home ci dovrebbe essere uno script per fare il backup, lancialo
  • Siccome è WP c'è installato un comodo comando che si chiama `wp` per interagire col sito da shell
  • wp plugin list lista i plugin e lo stato di questi
  • wp core check-status da lo stato del core di wp
  • wp core aggiorna wordcodess
  • wp plugin update --all aggiorna tutti i plugin installati
  • se tutto è andato bene i backup codecedenti a quello fatto prima possono essere tolti

Se qualcosa è andato storto puoi recuperare i files ed il DB dal backup che hai fatto con lo script

Wiki

Prima di qualsiasi cosa controlla nelle note di versione non ci siano controindicazioni all'aggiornamento tipo versioni non supportate di PHP o plugin non più supportati o che necessitano di aggiornamenti

  • COllegati al server
  • diventa l'utente che fa girare il wiki
  • Fai un dump del DB col seguente comando
    • mysqldump -u <utente> -p <dbname> | xz -z > dump_wiki$(date "+%F").sql.xz
  • Scarica l'ultima versione della wiki dal sito
  • estrai la versione aggiornata nella sua cartella con versione
  • copia il file delle impostazioni e delle immagini nella cartella della nuova versione
    • cp mediawiki/LocalSettings.php mediawiki-<nuova-versione>
    • rsync -aPh mediawiki/images mediawiki-<nuova-versione>
  • controlla quali plugin e skins c'erano nella vecchia installazione e ri-scaricali per la nuova versione. Stanno nella cartella extensions e skins
    • Non copiare la cartella extensions o skins perchè ci sono anche i moduli ed i temi core
  • Entra nella sottocartella maintenance della cartella del nuovo mediawiki
  • Esegui eventuali aggiornamenti dello schema del DB col comando
    • php update.php nel frattempo prega
  • Se tutto è andato bene puoi aggiornare il collegamento simbolico a cui fa riferimento mediawiki
    • rm mediawiki;ln -s mediawiki-<nuova-versione> mediawiki
  • Controlla col browser da desktop e mobile che tutto vada bene
  • crea un archivio tar della cartella mediawiki precedente col seguente comando
    • tar cfvJ mediawiki_$(date "+%F")-<versione>.tar.xz mediawiki-versione
  • butta il tar.xz ed il dump del DB nella cartella backups


Se qualcosa è andato male riporta il link simbolico alla versione precedente e ripristina il DB che hai salvato prima

Pad

Il pad è abbastanza facile da aggiornare visto che usa git per le releases

  • Collegati al server
  • ferma il servizio del pad col comando
    • systemctl stop etherpad-lite
  • Diventa l'utente che fa girare il pad
  • Fai un dump del DB col comando
    • mysqldump -u <utente> -p <database> | xz > eigenpad-backup-$(date "+%F").sql.xz
  • entra nella cartella eigenPad
  • prendi nota della versione attuale del pad con
    • git rev-parse HEAD
  • aggiorna il pad col comando
    • git pull origin maser basta questo perchè sul branch master tengono solo le versioni stabili
  • Adesso non far ripartire il servizio normalmente ma esegui invece il comando
    • bin/run.sh questo perchè questo comando aggiorna eventuali dipendenze, fa pulito della cache ed altri cose utili
  • Se il pad è partito correttamente (può volerci qualche decina di secondi) allora puoi dare Ctrl+c per interromepere lo script e farlo ripartire con
    • systemctl start etherpad-lite

Se qualcosa è andato storto torna al commit da cui sei partito:

  • ferma il processo del pad con
    • systemctl stop etherpad-lite
  • dentro la cartella del pad esegui
    • git checkout <commit id>
  • restora il dump del DB che hai fatto prima
  • fai partire il pad normalmente con
    • systemctl start etherpad-lite

Nextcloud

Nextcloud è installata usando git, questo rende supersemplice l'aggiornamento a patto di ricordarsi di fare un po' di passaggi.

Come prima cosa controlla che la nuova versione non abbia requisiti software che il server non soddisfa (php, mysql, ...). Una volta controllato questo è il turno del magico backup.

  • Collegati al server
  • Diventa l'utente che fa girare nextcloud col comando
    • sudo -iu nextcloud
  • Metti nextcloud in modalità di manutenzione così nessunu modificherà il sistema mentre lo usi
    • cd nextcloud/; ./occ maintenance:mode --on
  • Fai un dump del db (i parametri li trovi in nextcloud/config/config.php) col comando
    • mysqldump -u <utente> -p <dbname> | xz > nextcloud-backup-$(date "+%F").sql.xz
  • entra nella cartella /home/nextcloud/nextcloud
  • chiedi a git a che commit stai
    • git show questo servirà in caso qualcosa vada storto
  • Fai un backup delle configurazioni
    • tar cfvJ config-$(date "+%F").tar.xz config
  • A questo punto sei prontu per l'aggiornamento
    • cd nextcloud; git fetch;git checkout <laversionechevuoi>
    • cd 3rdparty; git fetch;git checkout <lastessaversionediprima>
    • cd nextcloud; ./occ upgrade
  • Se tutto è andato bene a quest punto puoi dare il comando
    • ./occ/maintenance:mode --off
  • Non è ancora finita: entra nell'interfaccia web e controlla se ci sono aggiornamenti per le app installate oppure se vanno riabilitate alcune app disabilitate durante l'upgrade

Se qualcosa è andato storto restora il db, ritorna al commit di partenza e spera