On souhaite sauvegarder et restaurer un serveur Gitlab. Pour cela nous allons installer une nouvelle instance de Gitlab dans une machine virtuelle pour y restaurer notre sauvegarde et de tester son intégrité.
1 - Sauvegarde
Sur notre serveur Gitlab, on va lancer la sauvegarde avec la commande suivante :
gitlab-rake gitlab:backup:create
On va aller récupérer le fichier de sauvegarde :
cd /var/opt/gitlab/backups
On va copier ce fichier vers la nouvelle installation de Gitlab :
scp /var/opt/gitlab/backups/1451063445_gitlab_backup.tar user@gitlab-new.domain.local:/home/user/
Sauvegarder les clé ssh :
scp
/etc/gitlab/gitlab-secrets.json user@gitlab-new.domain.local:/home/user/
2 - Restauration
D'abord s'assurer d'avoir les mêmes versions de Gitlab sur les deux machines.
Sur la machine où l'on souhaite restaurer, on va copier le fichier de sauvegarde dans le répertoire /var/opt/gitlab/backups :
cp /home/user/1451063445_gitlab_backup.tar /var/opt/gitlab/backups
Changement des permissions du fichier de sauvegarde
chmod 775 /var/opt/gitlab/backups/1451063445_gitlab_backup.tar
Arrêt des processus suivants :
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
Restauration :
gitlab-rake gitlab:backup:restore BACKUP=1451063445
Le numéro dans la variable BACKUP correspond à l'horodatage de la sauvegarde au début du nom du fichier de sauvegarde.
Restaurer les clé ssh :
sudo cp gitlab-secrets.json /etc/gitlab/gitlab-secrets.json
On relance Gitlab :
gitlab-ctl start
Et on vérifie que la restauration s'est déroulée correctement :
gitlab-rake gitlab:check SANITIZE=true