Comment migrer de serveur son instance gitlab

Table des matières

Mon gitlab tourne sur une version ancienne de Debian et son espace disque est maintenant sous dimensionné. Je présente ici la méthode que j’ai utilisé pour migrer le service et ses données sur un nouveau serveur.

La migration doit se faire sur des versions identiques la première étape est donc de réaliser une mise à niveau de la version en production dans la dernière version et d’installer sur le nouveau serveur cette même version.

Mettre à jour la version actuelle

curl https://packages.gitlab.com/gpg.key -o /tmp/omnibus_gitlab_gpg.key
apt-key add /tmp/omnibus_gitlab_gpg.key
apt update
apt install gitlab-ce

Installer Gitlab sur le nouveau serveur

apt install gnupg curl --no-install-recommends
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh |  bash
apt install gitlab-ce

Sauvegarde du serveur actuel

sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
sudo gitlab-rake gitlab:backup:create

Exporter les fichiers de configuration et backup sur le nouveau serveur

ssh-keygen -a 100 -t ed25519  -f ~/.ssh/id_ed25519_migration
ssh-copy-id -i ~/.ssh/id_ed25519_migration eric@192.168.2.111
scp -i ~/.ssh/id_ed25519_migration /var/opt/gitlab/backups/1589964746_2020_05_20_12.10.6_gitlab_backup.tar eric@192.168.2.111:/gitlab
sudo scp -i ~/.ssh/id_ed25519_migration /etc/gitlab/gitlab.rb eric@192.168.2.111:/gitlab
sudo scp -i ~/.ssh/id_ed25519_migration /etc/gitlab/gitlab-secrets.json eric@192.168.2.111:/gitlab
sudo scp -r -i ~/.ssh/id_ed25519_migration /etc/gitlab/ssl eric@192.168.2.111:/gitlab

Restaurer la configuration et le backup sur le nouveau serveur

cp /gitlab/gitlab.rb /etc/gitlab/gitlab.rb
cp /gitlab/gitlab-secrets.json /etc/gitlab/
cp -R /gitlab/ssl /etc/gitlab/

Copier les clés ssh autorisées

sudo scp -i ~/.ssh/id_ed25519_migration ~git/.ssh/authorized_keys eric@192.168.2.111:/gitlab
cp /gitlab/authorized_keys ~git/.ssh/authorized_keys
chmod 600 ~git/.ssh/authorized_keys 
chown git:git ~git/.ssh/authorized_keys

Reconfiguration du nouveau serveur

gitlab-ctl reconfigure
[...]
Running handlers complete
Chef Client finished, 392/1447 resources updated in 02 minutes 02 seconds
gitlab Reconfigured!

Arrêter le service gitlab

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
cp /gitlab/1589964746_2020_05_20_12.10.6_gitlab_backup.tar /var/opt/gitlab/backups
chown git:git /var/opt/gitlab/backups/1589964746_2020_05_20_12.10.6_gitlab_backup.tar
gitlab-rake gitlab:backup:restore BACKUP=1589964746_2020_05_20_12.10.6
gitlab-rake gitlab:check SANITIZE=true

Démarrer le service gitlab sur le nouveau serveur

gitlab-ctl start

Related