Mantener GitLab actualizado es fundamental para aprovechar las nuevas funcionalidades y corregir vulnerabilidades de seguridad. Este proceso detalla los pasos para actualizar una instancia de GitLab CE basada en RPM y aplicar parches de localización personalizados.
Obtención del paquete de actualización
El primer paso consiste en descargar el paquete de instalación correspondiente a la versión objetivo. Puede obtenerse desde repositorios espejo o directamente desde los servidores oficiales. En este ejemplo, almacenaremos el paquete en un directorio temporal dedicado.
mkdir -p /opt/gitlab-upgrades
cd /opt/gitlab-upgrades
curl -L -o gitlab-ce-16.5.0-ce.0.el8.x86_64.rpm "https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/8/gitlab-ce-16.5.0-ce.0.el8.x86_64.rpm/download.rpm"
Ejecución de la actualización del sistema
Antes de aplicar el nuevo paquete, es recomendable detener los servicios principales para evitar inconsistencias en la base de datos o en los procesos en segundo plano durante la migración.
Detención de servicios críticos
gitlab-ctl stop puma
gitlab-ctl stop sidekiq
gitlab-ctl stop nginx
Instalación del nuevo paquete
Utilice el gestor de paquetes del sistema para realizar la actualización del binario.
dnf localinstall -y /opt/gitlab-upgrades/gitlab-ce-16.5.0-ce.0.el8.x86_64.rpm
Reconfiguración y reinicio
Una vez actualizados los binarios, es necesario rceonfigurar la instancia para aplicar las migraciones de base de datos y actualizar los archivos de configuración, seguido de un reinicio general.
gitlab-ctl reconfigure
gitlab-ctl restart
Aplicación de parches de localización
Si la versión oficial no incluye el idioma deseado o se requiere una traducción específica de la comunidad, es posible aplicar un parche de localización manualmente.
Preparación del entorno y descarga del repositorio de traducción
dnf install -y git patch
cd /tmp
git clone --depth 1 --branch v16.5.0-zh https://gitlab.com/xhang/gitlab.git gitlab-localization
Geenración e inyección del parche
Se debe generar un archivo de diferencias entre la versión base y la rama localizada, para luego aplicarlo sobre los archivos de la aplicación.
cd /tmp/gitlab-localization
git diff v16.5.0 v16.5.0-zh > /tmp/custom-locale.patch
# Aplicar el parche al directorio de servicios de GitLab
patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < /tmp/custom-locale.patch
Reinicio final
Para que los cambios de localización surtan efecto, reinicie los servicios y ejecute una reconfiguración final.
gitlab-ctl restart
gitlab-ctl reconfigure