Migrar Gitlab a otro servidor
En un articulo anterior ya hablamos de que es y como instalar Gitlab, ahora toca hablar de como migrar lo a otro servidor.
Para poder migrar toda nuestra información de Gitlab (Issues, MR, Snippets, Usuarios, Proyectos, Grupos, etc) a otro servidor tendremos que cumplir con los siguientes requisitos, al menos para este tutorial.
-
Servidor de Gitlab actualizado.
-
El servidor nuevo deberá tener la misma versión de Gitlab del anterior servidor.
-
Acceso directo por
ssh
de un servidor a otro.
Manos a la obra.
Primero debemos generar un respaldo de nuestro servidor actual con el siguiente comando:
sudo gitlab-rake gitlab:backup:create
Esto generara un archivo con este formato xxxxxxxxx_gitlab_backup.tar
Toca pasar el backup,comúnmente se encuentra en /var/opt/giltab/backups/
con scp.
sudo scp /var/opt/giltab/backups/xxxxxxxxx_gitlab_backup.tar user@otherserver:/home/user
Algo muy importante este que también debemos pasar los archivo gitlab.rb y gitlab_secrets.json (minimamente) de forma manual
Estos archivos se encuentran en /etc/gitlab
, también usaremos scp para enviarlos al nuevo servidor.
sudo scp /etc/gitlab/gitlab.rb user@otherserver:/home/user
sudo scp /etc/gitlab/gitlab_secrests.json user@otherserver:/home/user
Al llegar este punto ya tendremos toda la información en el nuevo servidor, solo queda montarla en los directorios correctos.
Primero acomodaremos los archivos gitlab.rb y gitlab_secrets.json.
sudo cp gitlab* /etc/gitlab/
El siguiente es el respaldo con el comando:
sudo cp xxxxxxxx_gitlab_backup.tar /var/opt/gitlab/backups/
Cambiamos el usuario al que pertenece el respaldo con el comando:
sudo chown -R git /var/opt/gitlab/backups/
Para montar el respaldo corremos este comando:
sudo gitlab-rake gitlab:backup:restore BACKUP=1476213812
Y escribimos yes cada vez que nos lo pida.
Por ultimo re-configuramos Gitlab y lo reiniciamos con los siguientes comandos:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl stop
sudo gitlab-ctl start
En este punto ya deberíamos poder entrar a revisar que toda nuestra información se encuentra allí.