Les Actualités

Tutoriels

Restaurer manuellement un backup de GitLab

Softia, ESN vous explique comment restaurer manuellement un backup de GitLab.


Pour restaurer manuellement un backup Gitlab
 

Je commence par récupérer les fichiers suivants sur « big » (dans /var/archives/gitlab, en tant que « backuper ») :

  • gitlab-etc.20191226.master.tar.gz — 879 K
  • 1577322274_2019_12_26_12.5.2_gitlab_backup.tar — 3,3 G

Création d’un répertoire « workspace », avec :

  • ./gitlab-secrets.json — récupéré du /etc/gitlab du .tar.gz
  • ./gitlab.rb — récupéré du /etc/gitlab du .tar.gz
  • ./ssl/ — récupéré du /etc/gitlab du .tar.gz
  • ./backups/1577322274_2019_12_26_12.5.2_gitlab_backup.tar — récupéré du .tar

Automatiser tout ça ?

Dans « workspace », récupération du repository GitLab :

$ git clone

On déplace tout le contenu du répertoire « workspace » dans docker/restore-gitlab/ :

$ mv gitlab-secrets.json docker/restore-gitlab/
$ mv gitlab.rb           docker/restore-gitlab/
$ mv ssl/                docker/restore-gitlab/
$ mv backups/            docker/restore-gitlab/
$ cd docker/restore-gitlab/
$ docker build -t tmp/gitlab .

Noter que le gros fichier de backup de 3,3 G pourrait ne pas être dans le répertoire de travail, mais ailleurs, vu qu’il ne sert pas à l’image, seulement au container. Cela accélérerait le build.

Afin de ne pas avoir de problèmes avec votre Docker pendant le restore, votre version de VM docker81 doit être en 64bit et non en 32-bit sous peine de devoir tout recommencer.

Nous construisons l’image :

$ docker build -t tmp/gitlab.

Maintenant nous montons le container :

$ docker run -d \    --hostname git --publish 80:80 --publish 443:443 \    -v "${PWD}/../backups:/var/opt/gitlab/backups:ro" \    tmp/gitlab

Le montage du container prend plusieurs minutes ! (14 minutes sur docker81)

Vérification de fin de script : la ligne « Done » doit être écrite tout en bas.

Ensuite pour tester :

$ git clone http://localhost:80/commons/softia-it-commons.git

Ça fonctionne (au moins dans le container).

Pour ceci, il faudra regarder les certificats :

$ git clone https://localhost:443/commons/softia-it-commons.git

Ou alors est-ce ceci ?

$ git clone https://git.softia.fr/commons/softia-it-commons.gitCloning into 'softia-it-commons'...fatal: unable to access 'https://git.softia.fr/commons/softia-it-commons.git/': gnutls_handshake() failed: The TLS connection was non-properly terminated.

Même en ayant redéfini « 127.0.0.1 git.softia.fr » dans /etc/hosts.

Cependant, vous avez déjà un restore qui fonctionne en HTTP :80, on va rester là-dessus.

Prendre contacter !

Toutes les publications de Softia, ESN sur LinkedIn !

Un projet, des questions ?

Nous contacter