Petit mémo pour la procédure à suivre si l'on souhaite déplacer son instance GitLab sur un nouveau serveur.
Prérequis
Le nouveau serveur doit avoir une instance GitLab dans la même version que l'ancien serveur.
Les scripts d'installation sont disponible ici :
- https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh
- https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh
Procédure
Sur l'ancien serveur
1) Création d'un répertoire pour stocker les données :
# mkdir /tmp/bkp-gitlab
2) Arrêter les services GitLab :
# gitlab-ctl stop unicorn # gitlab-ctl stop sidekiq
3) Créer une sauvegarde de l'instance actuelle :
# gitlab-rake gitlab:backup:create
4) Copier les fichiers de configuration et certificats de GitLab :
# cp /etc/gitlab/gitlab.rb /tmp/bkp-gitlab/ # cp /etc/gitlab/gitlab-secrets.json /tmp/bkp-gitlab/ # cp -r /etc/gitlab/ssl /tmp/bkp-gitlab/
5) Copier le fichier de backup généré à l'étape 3)
# cp /var/opt/gitlab/backups/1588460614_2020_05_03_12.10.2_gitlab_backup.tar /tmp/bkp-gitlab/
6) Transférer le répertoire /tmp/bkp-gitlab sur le nouveau serveur GitLab
# scp -r /tmp/bkp-gitlab user@X.X.X.X:/tmp
Sur le nouveau serveur
1) Copier les fichiers suivant dans le /etc/gitlab
# cp /tmp/gitlab* /etc/gitlab # cp -r /tmp/gitlab/ssl /etc/gitlab
2) Reconfigurer la nouvelle instance :
# gitlab-ctl reconfigure
3) Arrêter les services GitLab :
# gitlab-ctl stop unicorn # gitlab-ctl stop sidekiq
4) Copier le fichier de sauvegarde de l'ancienne instance à l'emplacement suivant :
# cp /tmp/bkp-gitlab/1588460614_2020_05_03_12.10.2_gitlab_backup.tar /var/opt/gitlab/backups
5) Changer les autorisations du fichier copié :
# chown git:git /var/opt/gitlab/backups/1588460614_2020_05_03_12.10.2_gitlab_backup.tar
6) Lancer le processus de restauration GitLab :
# gitlab-rake gitlab:backup:restore BACKUP=1588460614_2020_05_03_12.10.2
7) Pour finir, relancer les services GitLab et lancer une vérification du système :
# gitlab-ctl start # gitlab-rake gitlab:check SANITIZE=true