/ debian

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.

  1. Si vous n’avez pas de dossier backups dans /var/opt/gitlab/ créez le.

  2. Faites une copie des clés d’authentifications /etc/gitlab/gitlab-secrets.json

  3. 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.

  1. Commencez par installer les paquets nécessaires au bon fonctionnement de Gitlab
    sudo apt-get install curl openssh-server ca-certificates postfix

  2. 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

  3. Installez Gitlab sudo apt-get install gitlab-ce

  4. Configurez Gitlab selon vos besoins puis lancez sudo gitlab-ctl reconfigure

Transferts des données entre les serveurs

  1. Copiez votre archive (créée précédemment) dans /var/opt/gitlab/backups/

  2. Rétablissez les bons droits sur l'archive sudo chown git:git /var/opt/gitlab/backups/[timestamp]_gitlab_backup.tar

  3. Copier gitlab-secrets.json dans /etc/gitlab/

  4. Stoppez les processus qui sont connectés à la base de données
    sudo gitlab-ctl stop unicorn; sudo gitlab-ctl stop sidekiq

  5. 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

  6. Redémarrer Gitlab sudo gitlab-ctl start

  7. Créez les satellites ruby manquants
    sudo gitlab-rake gitlab:satellites:create

  8. 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 !