# Guía para Migrar GitLab a un Nuevo Servidor

- Link: https://binariocero.com/linux/guia-para-migrar-gitlab-a-un-nuevo-servidor
- Published: 2024-06-21T20:47:31+02:00
- Author: Juan José Fernández Durán

![Loading](https://binariocero.com/wp-content/plugins/page-views-count/ajax-loader-
2x.gif)

Esta guía detalla los pasos para migrar una instancia de GitLab a un nuevo servidor.

### 1. Actualiza la Instalación Actual

Asegúrate de que la versión de GitLab en el servidor antiguo esté actualizada para
evitar problemas de compatibilidad durante la migración.

### 2. Configura el Nuevo Servidor

Instala GitLab en el nuevo servidor. Asegúrate de instalar la misma edición (comunitaria
o empresarial) que la usada en el servidor antiguo. Por ejemplo, para la edición
comunitaria:

    ```wp-block-preformatted
    curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bashsudo EXTERNAL_URL="https://gitlab.example.com" apt-get install gitlab-ce
    ```

### 3. Crea una Copia de Seguridad

En el servidor antiguo, crea una copia de seguridad de GitLab:

    ```wp-block-preformatted
    sudo gitlab-backup create
    ```

La copia de seguridad se guardará en `/var/opt/gitlab/backups/`.

### 4. Transfiere los Archivos

Transfiere la copia de seguridad y otros archivos necesarios al nuevo servidor. 
Puedes usar `scp` o `rsync`:

    ```wp-block-preformatted
    rsync -vazP old.server:/etc/gitlab/ /etc/gitlab/
    ```

### 5. Restaura la Copia de Seguridad

En el nuevo servidor, detén los servicios de GitLab y restaura la copia de seguridad:

    ```wp-block-preformatted
    sudo gitlab-ctl stop pumasudo gitlab-ctl stop sidekiqsudo gitlab-backup restore BACKUP=nombre_del_backup_sin_extension
    ```

### 6. Verifica y Reconfigura

Reinicia GitLab y verifica que todo funcione correctamente:

    ```wp-block-preformatted
    sudo gitlab-ctl restartsudo gitlab-rake gitlab:check SANITIZE=truesudo gitlab-rake gitlab:doctor:secretssudo gitlab-rake gitlab:artifacts:checksudo gitlab-rake gitlab:lfs:checksudo gitlab-rake gitlab:uploads:check
    ```

Si es necesario, actualiza el nombre de dominio y reconfigura:

    ```wp-block-preformatted
    sudo gitlab-ctl reconfigure
    ```

### Consideraciones Finales

Si encuentras errores relacionados con ramas no principales, usa el siguiente comando
en `gitlab-rails`:

    ```wp-block-preformatted
    gitlab-rails cProject.all.each {|p| p.change_head(p.default_branch) }
    ```
