Migrer un serveur GitLab
Au boulot j’ai du migrer le serveur GitLab de la boite vers un VPS plus puissant chez OVH. Ce n’était vraiment pas compliqué au final mais j’avoue que par inattention j’ai fait pas mal de gaffes.
C’est pourquoi je vous propose cet article. Je m’écris vous écris la démarche sans erreur ici.
Faire un backup de l’ancien serveur GitLab
Je ne sais pas si vous aviez l’habitude de faire un backup régulier de votre serveur GitLab. Si oui tant mieux, c’est une best practice qu’il faut avoir et vous pouvez donc passer cette étape (ne pas la lire mais la faire quand même).
Pour les autres voici la marche à suivre.
-
Si vous n’avez pas de dossier backups dans
/var/opt/gitlab/
créez le. -
Faites une copie des clés d’authentifications
/etc/gitlab/gitlab-secrets.json
-
Lancez la création du backup
# version package (apt-get)
gitlab-rake gitlab:backup:create
# version installation manuelle
sudo -u git -H bundle exec rake gitlab:backup:create RAILS_ENV=production
Vous pouvez récupérez l’archive créée dans le dossier de backup
Installation du nouveau serveur
Cette étape est classique, il s’agit d’une installation normal de GitLab.
Normalement vous maitrisez déjà cette partie. Seule différence pour les plus anciens d’entre nous à utiliser GitLab c’est que les nouvelles versions ne s’installent plus manuellement mais à partir du gestionnaire de paquets.
-
Commencez par installer les paquets nécessaires au bon fonctionnement de Gitlab
sudo apt-get install curl openssh-server ca-certificates postfix
-
Ajouter les serveurs de Gitlab comme serveurs de paquets pour votre machine
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
-
Installez Gitlab
sudo apt-get install gitlab-ce
-
Configurez Gitlab selon vos besoins puis lancez
sudo gitlab-ctl reconfigure
Transferts des données entre les serveurs
-
Copiez votre archive (créée précédemment) dans
/var/opt/gitlab/backups/
-
Rétablissez les bons droits sur l'archive
sudo chown git:git /var/opt/gitlab/backups/[timestamp]_gitlab_backup.tar
-
Copier
gitlab-secrets.json
dans/etc/gitlab/
-
Stoppez les processus qui sont connectés à la base de données
sudo gitlab-ctl stop unicorn; sudo gitlab-ctl stop sidekiq
-
Remontez toutes les données (indiquez à la variable BACKUP le timestamp correspondant au backup que vous souhaitez remonter)
sudo gitlab-rake gitlab:backup:restore BACKUP=24567834567
-
Redémarrer Gitlab
sudo gitlab-ctl start
-
Créez les satellites ruby manquants
sudo gitlab-rake gitlab:satellites:create
-
Vérifiez que tout s’est bien passé
sudo gitlab-rake gitlab:check SANITIZE=true
A ce stade, si tout s’est bien passé, vous avez un serveur tout neuf avec la dernière version de Gitlab ainsi que tous vos projets installés. Vous pouvez souffler vous n’avez rien perdu !