Project

General

Profile

Demande #5811

Mettre à jour Gitea/forge.chapril.org en 1.16.3

Added by Pierre-Louis Bonicoli 6 months ago. Updated 5 months ago.

Status:
Rejeté
Priority:
Normale
Target version:
Start date:
03/05/2022
Due date:
% Done:

0%

Estimated time:
0.50 h

Description

Une nouvelle version est disponible: https://github.com/go-gitea/gitea/releases/tag/v1.16.3.

Le changelog de cette version contient un item SECURITY (la version précédente en contient également un qui n'a pas été backporté en v1.15.X.)

Mise à jour planifiée


Related issues

Copied from forge.chapril.org - Demande #5795: Mettre à jour Gitea/forge.chapril.org en 1.16.2Rejeté02/28/2022

Actions
Copied to forge.chapril.org - Demande #5823: Mettre à jour Gitea/forge.chapril.org en 1.16.4Fermé03/15/2022

Actions

History

#1

Updated by Pierre-Louis Bonicoli 6 months ago

  • Copied from Demande #5795: Mettre à jour Gitea/forge.chapril.org en 1.16.2 added
#2

Updated by Pierre-Louis Bonicoli 6 months ago

  • Description updated (diff)
#3

Updated by Pierre-Louis Bonicoli 6 months ago

Procédure de test permettant de valider le bon fonctionnement de la mise à jour

Notes:

  • Toutes les commandes sont exécutées sur la machine groff.
  • la commande su - gitea "/srv/gitea/bin/gitea migrate-storage" pourrait être utilisée à la suite de la commande migrate mais en cas d'erreur il serait nécessaire de restaurer les données modifiées depuis la sauvegarde au format zip.

Préparer l'environnement de test

  • VERSION="" /srv/forge.chapril.org/tools/upgrade.sh stop backup@ # couper le service gitea et faire une sauvegarde
  • unzip /srv/gitea/bin/gitea-dump-XXXX.zip gitea-db.sql -d /var/tmp/ # extraire le dump de la base du backup
    • su - postgres "pg_dump -U postgres -O giteadb -f /var/tmp/gitea-db.sql" # créer un dump de la base giteadb (alternative à la commande précédente)
  • chown postgres /var/tmp/gitea-db.sql # Autoriser l'utilisateur postgres à accéder au fichier
  • chmod g+r /var/tmp/gitea-db.sql
  • su - postgres -c "psql -c 'alter database giteadb set default_transaction_read_only=on;'" # interdire les modifications en écriture sur la base giteadb
  • su - postgres -c "createdb --owner giteadbadmin testmigration" # créer une pase de données de test
  • su - postgres -c "psql -d testmigration -f /var/tmp/gitea-db.sql -W -h127.0.0.1 giteadbadmin" # importer la base
  • echo "local testmigration giteadbadmin scram-sha-256" >> /etc/postgresql/13/main/pg_hba.conf # Autoriser l'utilisateur giteadbadmin à accéder à la base de test
  • systemctl restart postgresql.service # prendre en compte la modification
  • sed -i 's/\<giteadb$/testmigration/' /etc/gitea/gitea.ini # indiquer à gitea d'utiliser la base de test
  • Pour empêcher que des utilisateurs n'utilisent l'environnement de test: ajouter la configuration suivante à l'intérieur de la balise VirtualHost /etc/apache2/sites-enabled/forge.chapril.org.conf :
     <Proxy *>
        Require ip XXXX # ip publique de la personne réalisant le test de migration
     </Proxy>
  • systemctl restart apache2 # prendre en compte les modifications
  • Tester qu'une autre IP publique ne peut pas accéder au service https://forge.chapril.org

Tester la nouvelle version

  • VERSION="X.Y.Z" /srv/forge.chapril.org/tools/upgrade.sh download
  • su - gitea -c "/srv/gitea/bin/gitea-1.16.3-linux-amd64 --config /etc/gitea/gitea.ini migrate" # migrer la base de données, vérifier que la commande ne rencontre pas d'erreur
  • VERSION="X.Y.Z" /srv/forge.chapril.org/tools/upgrade.sh upgrade
  • VERSION="X.Y.Z" /srv/forge.chapril.org/tools/upgrade.sh start # démarrer le service web
  • Tester les problèmes connus

Revenir à l'environnement de prod

  • su - postgres -c "psql -c 'alter database giteadb set default_transaction_read_only=off;'" # autoriser à nouveau les modifications en écriture sur la base giteadb
  • systemctl stop gitea apache2 postgresql
  • sed -i 's/\<testmigration$/giteadb/' /etc/gitea/gitea.ini # indiquer à gitea d'utiliser la base de test
  • Supprimer la dernière ligne du fichier /etc/postgresql/13/main/pg_hba.conf
  • Supprimer les directives ajoutées au fichier /etc/apache2/sites-enabled/forge.chapril.org.conf
  • git -C /etc status # Vérifier qu'il n'y a pas de modifications inattendues
  • ln --force /srv/gitea/bin/gitea-X.Y.Z-linux-amd64 /srv/gitea/bin/gitea # X.Y.Z correspond à la version de prod
  • systemctl start postgresql apache2 gitea

En fonction des résultats des tests, réaliser ou non la migration en suivant la procédure habituelle

#4

Updated by Pierre-Louis Bonicoli 5 months ago

  • Status changed from Nouveau to En cours de traitement
#5

Updated by Pierre-Louis Bonicoli 5 months ago

  • Status changed from En cours de traitement to Rejeté
Résultat des tests:
  • lors de l'authentification avec une clef de sécurité le message apparaît:
    The key: 'securitykey' authenticates using the deprecated U2F process. You should re-register this key and remove the old registration.
  • j'ai alors testé la suppression puis l'ajout de ma clef 2FA, le message d'erreur suivant apparaît:
    2022/03/06 04:49:08 ...els/auth/webauthn.go:138:getWebAuthnCredentialByName() [I] [SQL] SELECT "id", "name", "lower_name", "user_id", "credential_id", "public_key", "attestation_type", "aaguid", "sign_count", "clone_warning", "created_unix", "updated_unix" FROM "webauthn_credential" WHERE (user_id = $1 AND lower_name = $2) LIMIT 1 [312 solokey translucid] - 1.934689ms
    2022/03/06 04:49:08 models/db/context.go:127:Insert() [I] [SQL] INSERT INTO "webauthn_credential" ("name","lower_name","user_id","credential_id","public_key","attestation_type","aaguid","sign_count","clone_warning","created_unix","updated_unix") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11) RETURNING "id" [solokey translucid solokey translucid 312 [...] fido-u2f [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] 0 false 1646538548 1646538548] - 1.940643ms
    2022/03/06 04:49:08 ...security/webauthn.go:103:WebauthnRegisterPost() [E] CreateCredential: pq: la valeur d'une clé dupliquée rompt la contrainte unique « webauthn_credential_pkey »
    

La mise à jour a été annulée, la version 1.15.11 reste utilisée. Ce problème a été reporté upstream.

#6

Updated by Pierre-Louis Bonicoli 5 months ago

  • Copied to Demande #5823: Mettre à jour Gitea/forge.chapril.org en 1.16.4 added
#7

Updated by Pierre-Louis Bonicoli 5 months ago

  • Description updated (diff)

Also available in: Atom PDF