Cómo instalar GitLab en Debian 12 u 11

GitLab es una plataforma DevOps integral que proporciona una amplia gama de funciones para control de versiones, integración continua, implementación y gestión de proyectos. Integra varias etapas del ciclo de vida de DevOps en una sola aplicación, lo que permite a los equipos trabajar de manera colaborativa y eficiente. GitLab Community Edition (CE) es la versión de código abierto de GitLab, que ofrece poderosas herramientas para administrar repositorios, rastrear problemas y automatizar canalizaciones de CI/CD.

Para instalar GitLab CE en Debian 12 o 11, puede utilizar el script oficial de Bash de GitLab para configurar el repositorio APT de GitLab CE y luego instalar y configurar el software. Esta guía lo guiará a través de todo el proceso, lo que le garantizará una configuración sólida de GitLab en su sistema Debian.

Actualice Debian antes de la instalación de Gitlab

Mantener actualizado su sistema operativo Debian es crucial para mantener su estabilidad y seguridad. Para garantizar que todos los paquetes existentes en su sistema Debian estén actualizados, se recomienda realizar una actualización para proporcionar las últimas actualizaciones de seguridad y correcciones de errores, garantizando la estabilidad y confiabilidad de su sistema.

Puede actualizar fácilmente su sistema operativo Debian ejecutando el siguiente comando:

sudo apt update && sudo apt upgrade 

Instalar los paquetes necesarios para GitLab

Garantizar que todas las dependencias de GitLab estén instaladas es un paso fundamental en el proceso de instalación. Estas dependencias son componentes necesarios en los que GitLab depende para funcionar correctamente. Afortunadamente, instalar estas dependencias es un proceso sencillo.

Puede instalarlos fácilmente abriendo la terminal y ejecutando el siguiente comando:

sudo apt install curl ca-certificates apt-transport-https tzdata perl

Importar el repositorio APT de GitLab CE

De forma predeterminada, GitLab no está disponible en los repositorios predeterminados de Debian. Esto significa que debes crear un repositorio manualmente para instalar GitLab. Sin embargo, GitLab proporciona un script APT para ayudar con este proceso, facilitando a los usuarios la instalación de la plataforma. Con este script, puede crear un repositorio de GitLab, que le permitirá instalar GitLab utilizando el administrador de paquetes APT estándar.

Para descargar el script, ingrese el siguiente comando en su terminal:

curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

Una vez que ejecute este comando, el script se descargará y agregará el repositorio GitLab a su sistema Debian. También actualizará la lista de paquetes, permitiéndole instalar GitLab usando el administrador de paquetes APT estándar.

Finalice la instalación de GitLab mediante el comando APT

El siguiente paso es instalar GitLab. Recuerde que el script ya utilizó el comando "apt update" para sincronizar el repositorio recién creado y modificado. Una vez hecho esto, ahora puede proceder a ejecutar el comando de instalación ejecutando lo siguiente:

sudo apt install gitlab-ce

Este comando instalará GitLab Community Edition (CE), la versión gratuita y de código abierto de GitLab. El proceso de instalación puede tardar algún tiempo, dependiendo de la velocidad de Internet y las especificaciones del sistema.

Ejemplo de salida si la instalación de GitLab se realiza correctamente en Debian:

Configurar GitLab

Para configurar GitLab en Debian se deben seguir cuidadosamente varios pasos. Esta sección describirá el proceso paso a paso, incluida la configuración del nombre de host, la configuración del firewall y la configuración del correo electrónico.

Configurar el nombre de host

Para acceder a su instancia de GitLab, es fundamental configurar el nombre de host de su servidor GitLab, así que elija un nombre que sea fácil de recordar y de acceder. Siga estos pasos para configurar el nombre de host:

Abra el archivo de configuración de GitLab usando un editor de texto:

sudo nano /etc/gitlab/gitlab.rb

Localice la configuración external_url y reemplace la URL de ejemplo con el nombre de host que desee:

external_url 'https://gitlab.example.com'

Guarde el archivo y salga del editor de texto.

Ahora reconfigure GitLab para aplicar los cambios:

sudo gitlab-ctl reconfigure

Configurar el firewall UFW para Gitlab

GitLab usa el puerto 80 para HTTP y el puerto 443 para HTTPS de forma predeterminada. Es fundamental configurar su firewall para permitir el tráfico en estos puertos y garantizar que su instancia de GitLab sea accesible.

Siga estos pasos para configurar el firewall:

Primero, instale el firewall UFW, ya que este no viene instalado en Debian por defecto, con el siguiente comando:

sudo apt install ufw

A continuación, una vez que se complete la instalación, habilite el firewall UFW con el siguiente comando:

sudo ufw enable

Abra el archivo de configuración del firewall usando un editor de texto:

sudo nano /etc/ufw/applications.d/gitlab

Copie y pegue las siguientes líneas en el archivo:

[GitLab]
title=GitLab
description=GitLab application
ports=80,443/tcp

Guarde el archivo y salga del editor de texto.

Habilite la aplicación GitLab en el firewall:

sudo ufw app update GitLab
sudo ufw allow GitLab

Configurar los ajustes de correo electrónico

GitLab utiliza notificaciones por correo electrónico para informar a los usuarios sobre las actividades del proyecto, como nuevos problemas, solicitudes de fusión y comentarios.

Siga estos pasos para configurar los ajustes de correo electrónico:

Abra el archivo de configuración de GitLab usando un editor de texto:

sudo nano /etc/gitlab/gitlab.rb

Localice la configuración gitlab_rails['smtp_enable'] y configúrela en verdadero:

gitlab_rails['smtp_enable'] = true

Agregue las siguientes líneas al archivo para configurar los ajustes del servidor SMTP para su proveedor de correo electrónico, como Gmail:

gitlab_rails['smtp_address'] = "smtp.gmail.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "example@gmail.com"
gitlab_rails['smtp_password'] = "your_password"
gitlab_rails['smtp_domain'] = "smtp.gmail.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true

Guarde el archivo y salga del editor de texto.

Reconfigure GitLab para aplicar los cambios:

sudo gitlab-ctl reconfigure

Es importante tener en cuenta que después de ejecutar el comando "gitlab-ctl reconfigure", puede observar que la salida del terminal concluye con el siguiente mensaje:

Notes:
Default admin account has been configured with following details:
Username: root
Password: You didn't opt-in to print initial root password to STDOUT.
Password stored to /etc/gitlab/initial_root_password. This file will be cleaned up in first reconfigure run after 24 hours.

Para ver la contraseña de root (GitLab), ejecute el siguiente comando en su terminal:

sudo cat /etc/gitlab/initial_root_password

Al ejecutar este comando se mostrará la contraseña de root en la terminal. Es fundamental mantener segura esta contraseña y no compartirla con usuarios no autorizados.

Si necesita restablecer la contraseña de root, puede utilizar el siguiente comando:

sudo gitlab-rake "gitlab:password:reset[root]"

Después de ejecutar este comando, la contraseña de root se restablecerá a una cadena aleatoria que se muestra en la salida del terminal. Es esencial recordar que restablecer la contraseña de root invalidará todos los tokens de acceso personales y existentes, por lo que los usuarios deben crear otros nuevos después de restablecer la contraseña.

Por razones de seguridad, se recomienda cambiar la contraseña de root por una segura y única tan pronto como sea posible después de la configuración inicial y evitar el uso de la contraseña predeterminada. Puede cambiar la contraseña de root iniciando sesión en la interfaz web de GitLab, yendo a "Configuración de usuario"> "Cuenta" y seleccionando la opción "Cambiar contraseña".

Acceda a la interfaz de usuario de GitLab

Una vez que se completa la configuración del backend, es hora de iniciar sesión y acceder a GitLab. Para lograr esto, abra la ruta del dominio asignada a GitLab en el archivo de configuración.

https://gitlab.example.com

A continuación, inicie sesión en GitLab con el nombre de usuario "root" y la contraseña que recibió durante la instalación. Como se mencionó en la copia impresa de la contraseña de la sección anterior, la contraseña de la guía era “4zB2mbBLCcRLRAkv3qHfmSZULJ/6ocJNe2XK8zNx9nU=” en la imagen.

Ha iniciado sesión correctamente como cuenta raíz y llegará a la página de inicio predeterminada.

Consejos adicionales

A continuación se presentan algunas recomendaciones para proteger, personalizar o cualquier otro consejo general para la primera vez que inicia sesión por primera vez en la interfaz de usuario de GitLab:

  • Cambiar la contraseña predeterminada: Para mejorar la seguridad de su instancia de GitLab, es fundamental cambiar la contraseña predeterminada del usuario root. Inicie sesión en GitLab con el nombre de usuario y la contraseña predeterminados, navegue hasta "Configuración de usuario"> "Contraseña" e ingrese su nueva contraseña.
  • Configure la autenticación de dos factores (2FA): Agregar un factor de autenticación, como un código enviado a su teléfono o generado por una aplicación, al proceso de inicio de sesión es una capa de seguridad adicional proporcionada por 2FA. Para habilitar 2FA en GitLab, navegue hasta "Configuración de usuario"> "Cuenta"> "Autenticación de dos factores" y siga las instrucciones.
  • Crear un proyecto: Para crear un nuevo proyecto en GitLab, vaya a la página "Proyectos" y haga clic en el botón "Nuevo proyecto". Puede crear un proyecto vacío o importar un proyecto existente desde un repositorio Git.
  • Personaliza la interfaz de usuario: GitLab permite varias opciones de personalización, como cambiar el tema, agregar un logotipo personalizado y configurar la barra de navegación. Navegue hasta “Área de administración”> “Configuración” y seleccione las opciones apropiadas para personalizar la interfaz de usuario.
  • Configurar el control de acceso: Las potentes funciones de control de acceso de GitLab te permiten controlar quién puede acceder a tus proyectos y qué pueden hacer. Navegue a "Configuración del proyecto"> "Miembros" y agregue o elimine miembros con diferentes niveles de acceso para configurar el control de acceso.
  • Utilice GitLab CI/CD: Las poderosas capacidades CI/CD de GitLab automatizan las pruebas y la implementación de su código. Configure canalizaciones de CI/CD creando un archivo “.gitlab-ci.yml” en el directorio raíz de su proyecto y definiendo las etapas y trabajos para su canalización.
  • Configurar GitLab Runner: GitLab Runner es un agente liviano que ejecuta trabajos de CI/CD y envía los resultados a GitLab. Siga las instrucciones de la documentación de GitLab para instalar y configurar GitLab Runner en su sistema Debian.
  • Haga una copia de seguridad de su instancia de GitLab: Haga una copia de seguridad periódica de su instancia de GitLab para evitar la pérdida de datos en caso de falla del hardware u otros desastres. Ejecute el comando "gitlab-rake gitlab:backup:create" en su terminal para hacer una copia de seguridad de su instancia de GitLab.

Crear Cronjob para GitLab Auto Backup

Configurar un cronjob para la copia de seguridad automática de GitLab en Debian es vital para garantizar la seguridad de sus datos. Un cronjob es una tarea programada que se ejecuta automáticamente en intervalos específicos para realizar una copia de seguridad de su instancia de GitLab. Siga estos pasos para crear un cronjob para la copia de seguridad automática de GitLab en Debian.

Crear un script de copia de seguridad de Gitlab

El primer paso es crear un script de respaldo para realizar la copia de seguridad de su instancia de GitLab. Sigue estos pasos:

Usando un editor de texto, cree un nuevo archivo para su script de respaldo. He aquí un ejemplo:

sudo nano /usr/local/bin/gitlab-backup.sh

Pegue el siguiente código en el archivo:

#!/bin/bash

BACKUP_DIR=/var/opt/gitlab/backups
TIMESTAMP=$(date +%s)

sudo gitlab-rake gitlab:backup:create

sudo cp ${BACKUP_DIR}/$(ls -t ${BACKUP_DIR} | head -1) ${BACKUP_DIR}/gitlab_backup_${TIMESTAMP}.tar
  • Guarde el archivo y salga del editor de texto.

Este script generará una copia de seguridad de su instancia GitLab ejecutando el comando gitlab-rake gitlab:backup:create. Después de crear la copia de seguridad, duplicará la última copia de seguridad en un nuevo archivo con una marca de tiempo en el nombre del archivo.

Configuración de permisos y propiedad

El siguiente paso es establecer los permisos y la propiedad adecuados para el script de respaldo para garantizar que el cronjob pueda ejecutarlo. Sigue estos pasos:

Establezca el propietario del script de respaldo como el usuario asociado con GitLab:

sudo chown git:git /usr/local/bin/gitlab-backup.sh

Establezca los permisos del script de respaldo para habilitar la ejecución:

sudo chmod +x /usr/local/bin/gitlab-backup.sh

Creando un trabajo cronológico

El siguiente paso es crear un cronjob para programar la ejecución periódica del script de copia de seguridad. Siga estos pasos:

Para abrir el archivo de configuración crontab para el usuario de GitLab, siga estos pasos:

sudo crontab -u git -e

Para programar el script de respaldo para que se ejecute todos los días a la 1:00 a. m., agregue la siguiente línea al archivo de configuración crontab para el usuario de GitLab:

0 1 * * * /path/to/backup/script.sh

Guarde el archivo y salga del editor de texto.

Este cronjob ejecutará automáticamente el script de respaldo todos los días a la 1:00 a. m., lo que dará como resultado un nuevo archivo de respaldo con una marca de tiempo en el nombre del archivo.

Probando el cronjob

Puede verificar las funciones del cronjob correctamente ejecutando manualmente el script de respaldo y asegurándose de que el archivo de respaldo se genere sin errores. Para realizar esta prueba, ingrese el siguiente comando en su terminal:

sudo /usr/local/bin/gitlab-backup.sh

Este comando generará un nuevo archivo de copia de seguridad en el directorio "/var/opt/gitlab/backups". El nombre del archivo incluirá una marca de tiempo para indicar cuándo se creó la copia de seguridad.

Comandos de terminal de GitLab

GitLab-ctl es una herramienta de línea de comandos para administrar GitLab en Debian. Proporciona un conjunto de comandos de terminal para iniciar, detener, reiniciar y administrar servicios de GitLab, entre otras cosas. Aquí hay una sección detallada sobre los comandos del terminal GitLab-ctl, junto con comandos de ejemplo y resultados con explicaciones.

Iniciar y detener los servicios de GitLab

Para iniciar y detener los servicios de GitLab, utilice los siguientes comandos:

Inicie todos los servicios de GitLab:

sudo gitlab-ctl start

Detenga todos los servicios de GitLab:

sudo gitlab-ctl stop

Reinicie todos los servicios de GitLab:

sudo gitlab-ctl restart

Recargar los servicios de GitLab:

sudo gitlab-ctl reload

Estos comandos iniciarán, detendrán, reiniciarán o recargarán todos los servicios de GitLab. El resultado indicará qué servicios se están iniciando o deteniendo y si la operación fue exitosa.

Comprobando el estado de los servicios de GitLab

Para verificar el estado de los servicios de GitLab, use el siguiente comando:

sudo gitlab-ctl status

Estos comandos iniciarán, detendrán, reiniciarán o recargarán todos los servicios de GitLab. Después de ejecutar el comando, el resultado mostrará qué servicios se ven afectados y si la operación se realizó correctamente.

Copia de seguridad y restauración de datos de GitLab

Puede crear una copia de seguridad de los datos de GitLab usando el siguiente comando:

Cree una copia de seguridad de los datos de GitLab:

sudo gitlab-rake gitlab:backup:create

El comando proporcionado creará un archivo de copia de seguridad que contiene todos los datos de GitLab, como repositorios, datos de usuario y archivos de configuración. El archivo de copia de seguridad se almacenará en el directorio: “/var/opt/gitlab/backups”.

Restaure una copia de seguridad de los datos de GitLab:

sudo gitlab-rake gitlab:backup:restore BACKUP=<backup_file>

Con este comando, puede restaurar una copia de seguridad de los datos de GitLab desde un archivo de copia de seguridad específico. El archivo de respaldo debe estar en el directorio “var/opt/gitlab/backups”, o puede indicar la ruta completa al archivo de respaldo.

Comprobando la configuración de GitLab

Puede utilizar el siguiente comando para verificar la configuración de GitLab:

sudo gitlab-rake gitlab:check

Este comando puede buscar errores o advertencias en la configuración de GitLab, incluidas versiones desactualizadas, dependencias faltantes y configuraciones mal configuradas. El resultado resumirá los resultados del análisis e información detallada sobre cualquier problema detectado.

Comprobando los registros de GitLab

A continuación se explica cómo verificar los registros de GitLab usando los siguientes comandos:

Ver los registros de GitLab:

sudo gitlab-ctl tail gitlab-rails/production.log

Puede utilizar el siguiente comando para ver las últimas diez líneas del registro de producción de GitLab, que detalla las acciones, advertencias y errores del usuario.

Ver los registros de GitLab NGINX:

sudo gitlab-ctl tail nginx/gitlab_access.log

Este comando mostrará las últimas diez líneas del registro de acceso de GitLab NGINX que contiene detalles sobre las solicitudes y respuestas HTTP.

Vea los registros de GitLab PostgreSQL:

sudo gitlab-ctl tail postgresql/current

Este comando mostrará las últimas diez líneas del registro de GitLab PostgreSQL, que contiene información sobre consultas y transacciones de bases de datos.

Conclusión

Con GitLab CE instalado exitosamente en su sistema Debian usando el script de configuración oficial, puede aprovechar al máximo sus poderosas capacidades de DevOps. Este método garantiza que tenga la última versión y un fácil acceso a las actualizaciones. Mantenga y actualice periódicamente su instancia de GitLab para beneficiarse de las funciones y mejoras de seguridad más recientes. Disfrute de la integración perfecta y las herramientas colaborativas que ofrece GitLab CE para sus proyectos de desarrollo.

Joshua James
Sígueme
Últimas entradas de Joshua James (ver todo)

Deja un comentario