GitLab publie une nouvelle version tous les mois (22 du mois). Les mises à jour mineures (ex: 18.1.0 → 18.2.0) s’appliquent en une commande apt/dnf. Les mises à jour majeures (ex: 17.x → 18.x) nécessitent de suivre un chemin d’upgrade précis — sauter des versions est une des causes les plus fréquentes de corruption de base de données.
Toujours sauvegarder avant de mettre à jour. Voir Sauvegarder et restaurer GitLab.
Comprendre le versioning GitLab
Section intitulée « Comprendre le versioning GitLab »GitLab suit Semantic Versioning modifié :
18.10.1│ │ └── Patch : correctifs de sécurité/bugs│ └──── Minor (feature) : nouvelles fonctionnalités└────── Major : changements majeurs, migrations DB complexes| Type | Exemple | Risque | Downtime |
|---|---|---|---|
| Patch | 18.10.0 → 18.10.1 | Très faible | Non (zero-downtime migrations) |
| Minor | 18.9.x → 18.10.x | Faible | Non (en général) |
| Major | 17.x → 18.x | Élevé si saut de versions | Possible |
Connaître la version installée
Section intitulée « Connaître la version installée »# Version courtesudo gitlab-rake gitlab:env:info 2>/dev/null | grep "GitLab information" -A 5
# Ou directementcat /opt/gitlab/version-manifest.json | python3 -c \ "import sys,json; d=json.load(sys.stdin); print(d['build_version'])"Résultat :
18.10.1Mise à jour mineure (même version majeure)
Section intitulée « Mise à jour mineure (même version majeure) »C’est le cas le plus courant : 18.9.5 → 18.10.1, ou 18.10.0 → 18.10.1.
-
Vérifier la version disponible
Fenêtre de terminal apt-cache policy gitlab-cegitlab-ce:Installed: 18.10.1-ce.0Candidate: 18.10.1-ce.0S’il n’y a pas de candidate plus récent, votre version est à jour.
Fenêtre de terminal dnf info gitlab-ce -
Créer une sauvegarde
Fenêtre de terminal sudo gitlab-backup createVérifiez que la sauvegarde est complète avant de continuer.
-
Installer la mise à jour
Fenêtre de terminal sudo apt-get updatesudo apt-get install gitlab-ceFenêtre de terminal sudo dnf update gitlab-ceGitLab lance automatiquement
gitlab-ctl reconfigureà la fin du package. La mise à jour prend 5 à 15 minutes selon les migrations de base de données. -
Vérifier après la mise à jour
Fenêtre de terminal # Version installéesudo gitlab-rake gitlab:env:info 2>/dev/null | head -20# Tous les services opérationnelssudo gitlab-ctl status# Migrations appliquéessudo gitlab-rake db:migrate:status 2>/dev/null | tail -10
Mise à jour majeure (changement de version majeure)
Section intitulée « Mise à jour majeure (changement de version majeure) »Identifier le chemin d’upgrade
Section intitulée « Identifier le chemin d’upgrade »Utilisez l’outil officiel : GitLab Upgrade Path Tool
Exemple : mise à jour de 16.3.x vers 18.10.x
16.3.x → 16.11.x → 17.3.x → 17.11.x → 18.10.xLes versions intermédiaires (16.11.x, 17.3.x, 17.11.x) sont des versions requises (required stops).
Vous devez vous arrêter à chaque étape et vérifier que les migrations sont complètes.
Appliquer le chemin d’upgrade
Section intitulée « Appliquer le chemin d’upgrade »-
Mettre à jour vers la première version intermédiaire
Fenêtre de terminal # Installer une version spécifique (exemple : 16.11.10)sudo apt-get install gitlab-ce=16.11.10-ce.0Pour lister les versions disponibles :
Fenêtre de terminal apt-cache madison gitlab-ce | head -20 -
Attendre la fin des migrations background
Certaines migrations s’exécutent en arrière-plan (Sidekiq) après le reconfigure. Attendez qu’elles soient toutes terminées avant de continuer :
Fenêtre de terminal sudo gitlab-rake gitlab:db:validate_configOu via l’interface : Admin Area → Monitoring → Background Migrations — attendez que la liste soit vide.
-
Répéter pour chaque étape du chemin
Fenêtre de terminal # Étape suivantesudo apt-get install gitlab-ce=17.3.x-ce.0# ... vérifier, puis continuer -
Installer la version cible
Fenêtre de terminal sudo apt-get install gitlab-ce=18.10.1-ce.0# ou pour la dernière version disponible :sudo apt-get install gitlab-ce
Vérifier les migrations background
Section intitulée « Vérifier les migrations background »C’est l’étape critique souvent sautée :
# Via la console Railssudo gitlab-rails runner "puts Gitlab::BackgroundMigration.remaining"Le résultat doit être 0 avant de passer à la version suivante.
Via l’interface web :
Admin Area → Monitoring → Background Migrations
Mise à jour vers une version spécifique
Section intitulée « Mise à jour vers une version spécifique »Pour installer une version précise (utile pour les chemins d’upgrade) :
# Lister les versions disponiblesapt-cache madison gitlab-ce
# Installer une version précisesudo apt-get install gitlab-ce=18.9.5-ce.0# Lister les versions disponiblesdnf list --showduplicates gitlab-ce
# Installer une version précisesudo dnf install gitlab-ce-18.9.5-ce.0Rollback en cas de problème
Section intitulée « Rollback en cas de problème »Procédure de rollback :
-
Arrêter GitLab
Fenêtre de terminal sudo gitlab-ctl stop -
Réinstaller l’ancienne version
Fenêtre de terminal # Remplacer par la version précédentesudo apt-get install gitlab-ce=18.9.5-ce.0 -
Restaurer le backup
Suivre la procédure de restauration complète.
Automatiser les mises à jour de sécurité (patches)
Section intitulée « Automatiser les mises à jour de sécurité (patches) »Les mises à jour patch (18.10.0 → 18.10.1) sont généralement sans risque et peuvent être automatisées :
# Ubuntu/Debian : unattended-upgrades avec sélection du dépôtsudo apt-get install -y unattended-upgrades
# Ajouter le dépôt GitLab dans la whitelistcat >> /etc/apt/apt.conf.d/50unattended-upgrades << 'EOF'Unattended-Upgrade::Allowed-Origins { "packages.gitlab.com/gitlab/gitlab-ce:noble";};EOFDépannage : problèmes courants
Section intitulée « Dépannage : problèmes courants »| Symptôme | Cause probable | Solution |
|---|---|---|
FATAL: Mixlib::ShellOut::ShellCommandFailed | Migrations DB échouées | sudo gitlab-rake db:migrate puis relancer |
Service puma down après mise à jour | Incompatibilité config | sudo gitlab-ctl tail puma pour le détail |
500 Whoops après reconfigure | Nouveau paramètre obligatoire | Vérifier gitlab.rb et les notes de release |
| Mise à jour bloquée sur “waiting for background migrations” | Migrations background en cours | Attendre ou forcer : gitlab-rails runner "..." |
apt-get install gitlab-ce installe la mauvaise version | Cache apt non rafraîchi | sudo apt-get update d’abord |
À retenir
Section intitulée « À retenir »- Sauvegarder avant toute mise à jour — sans exception.
- Les mises à jour patch et mineures sont en une commande, généralement sans interruption.
- Les mises à jour majeures nécessitent un chemin d’upgrade précis — ne jamais sauter de version majeure.
- Utilisez l’outil de chemin d’upgrade pour calculer votre trajectoire.
- Attendez que les background migrations soient à zéro avant chaque étape d’un chemin d’upgrade.
- Le rollback passe obligatoirement par la restauration d’un backup.