Comment migrer GitLab vers un nouveau serveur
Au boulot, j’ai dû migrer le serveur GitLab de la boite vers un VPS plus puissant chez OVH. Ce n’était vraiment pas compliqué finalement, mais j’avoue que par inattention j’ai fait pas mal d’erreurs.
C’est pourquoi je vous propose cet article. Je m’écris vous écris la démarche sans erreurs ici.
Faire une sauvegarde de l’ancien serveur GitLab
Je ne sais pas si vous aviez l’habitude de faire une sauvegarde régulière 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 une sauvegarde dans /var/opt/gitlab/
créez le.
Faites une copie des clés d’authentifications /etc/gitlab/gitlab-secrets.json
Lancez la création d’une sauvegarde :
# 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érer l’archive créée dans le dossier d’une sauvegarde
Installation du nouveau serveur
Cette étape est classique, il s’agit d’une installation normale 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 GitLabsudo apt-get install curl openssh-server ca-certificates postfix
Ajouter les serveurs de GitLab comme serveurs de paquets pour votre machinecurl 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éessudo 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 manquantssudo gitlab-rake gitlab:satellites:create
Vérifiez que tout s’est bien passésudo gitlab-rake gitlab:check SANITIZE=true
À 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 !