Cómo instalar y configurar GitLab CE en CentOS

GitLab es un gestor de repositorios de código abierto basado en Rails desarrollado por GitLab Inc. Es un gestor de repositorios git basado en web que permite a tu equipo colaborar en la codificación, prueba y despliegue de aplicaciones. GitLab ofrece varias funciones, como wikis, seguimiento de incidencias, revisiones de código y feeds de actividad.

GitLab Inc ofrece 4 productos:

  • Gitlab CE (Community Edition) – autoalojado y gratuito; soporte desde el foro de la Comunidad.
  • Gitlab EE (Enterprise Edition) – autoalojado y de pago; incluye funciones adicionales.
  • GitLab.com – SaaS y gratuito.
  • GitLab.io – Instancia privada de GitLab gestionada por GitLab Inc.

En este tutorial, te mostraremos cómo instalar GitLab CE en el servidor CentOS 8. Instalaremos GitLab CE utilizando el paquete «omnibus» proporcionado por GitLab, realizaremos algunas configuraciones básicas de GitLab y probaremos a crear un nuevo proyecto GitLab.

Requisitos previos

Para esta guía, instalaremos GitLab CE en la última versión de CentOS 8 Server con 4GB de RAM, 30GB de espacio libre en disco y 2 CPUs.

¿Qué haremos?

  • Instalar dependencias de paquetes
  • Añadir Repositorio e Instalar GitLab CE (Community Edition)
  • Generar certificado SSL Letsencrypt y DHPARAM
  • Habilitar Nginx HTTPS para GitLab
  • Configurar Firewalld
  • Post Instalación de GitLab
  • Probando

Paso 1 – Instalar dependencias de paquetes

En primer lugar, instalaremos algunas dependencias de paquetes que necesita GitLab, incluidos los paquetes OpenSSH y Postfix.

Instala las dependencias de paquetes para GitLab CE utilizando el comando dnf que se indica a continuación.

sudo dnf -y install curl policycoreutils openssh-server openssh-clients postfix

Una vez completada la instalación, inicia los servicios SSH y Postfix.

systemctl start sshd
systemctl start postfix

A continuación, añade ambos servicios al arranque del sistema.

systemctl enable sshd
systemctl enable postfix

Como resultado, la instalación de las dependencias de paquetes se ha completado.

Instalar dependencias de paquetes para la instalación de GitLab

Paso 2 – Añadir Repositorio e Instalar GitLab

En este paso, añadiremos el repositorio oficial de GitLab a nuestro sistema CentOS 8 e instalaremos los paquetes de GitLab CE.

Añade el repositorio de GitLab utilizando el script instalador que aparece a continuación.

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

Una vez completado todo, a continuación se muestra el resultado que obtendrás.

Generating yum cache for gitlab_gitlab-ce...
Importing GPG key 0x51312F3F:
 Userid     : "GitLab B.V. (package repository signing key) <[email protected]>"
 Fingerprint: F640 3F65 44A3 8863 DAA0 B6E0 3F01 618A 5131 2F3F
 From       : https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
Importing GPG key 0xF27EAB47:
 Userid     : "GitLab, Inc. <[email protected]>"
 Fingerprint: DBEF 8977 4DDB 9EB3 7D9F C3A0 3CFC F9BA F27E AB47
 From       : https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey/gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg
Generating yum cache for gitlab_gitlab-ce-source...
The repository is setup! You can now install packages.

Para verificar el repositorio de GitLab, ejecuta el comando dnf que aparece a continuación.

sudo dnf repolist

Y obtendrás el repositorio de GitLab en la lista.

Añadir repositorio GitLab

A continuación, instala los paquetes de GitLab CE utilizando el comando

sudo dnf install gitlab-ce -y

Una vez completada la instalación, obtendrás el resultado que se muestra a continuación.

Instalar GitLab CE en CentOS 8

Como resultado, GitLab CE Community Edition ya está instalado en el sistema CentOS 8.

Paso 3 – Generar SSL Letsencrypt y DHPARAM

Para este tutorial, ejecutaremos GitLab en una conexión segura HTTPS, y utilizaremos los SSL Letsencrypt de Letsencrypt y DHAPRAM que se pueden generar utilizando el comando openssl.

En este paso, generaremos el Letsencrypt SSL utilizando la herramienta de línea de comandos certbot, que se puede instalar desde el repositorio EPEL, y luego generaremos el certificado DHPARAM utilizando el openssl.

Añade el repositorio EPEL al sistema CentOS 8 utilizando el siguiente comando.

sudo dnf install epel-release

A continuación, instala los paquetes certbot utilizando el comando dnf que aparece a continuación.

sudo dnf install certbot

Una vez completada la instalación, genera el certificado SSL Letsencryp para GitLab utilizando el comando certbot que aparece a continuación.

certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d gitlab.hakase-labs.io

Ahora tus certificados SSL estarán disponibles en el directorio ‘/etc/letsencrypt/live/gitlab.hakase-labs.io’, compruébalo utilizando el siguiente comando.

ls -lah /etc/letsencrypt/live/gitlab.hakase-labs.io/

Obtendrás los certificados ‘fullchain.pem’ y ‘privkey.pem’.

A continuación, genera el certificado DHPARAM en el directorio ‘/etc/gitlab’ utilizando el siguiente comando openssl.

sudo openssl dhparam -out /etc/gitlab/dhparams.pem 2048

Una vez completado todo, cambia el permiso del certificado ‘dhparam.pem’ a ‘0600’.

sudo chmod 600 /etc/gitlab/dhparams.pem

Como resultado, se han generado los certificados SSL Letsencrypt y DHPARAM para GitLab.

Paso 4 – Configurar el Nombre de Dominio Habilitar Nginx HTTPS para GitLab

En este paso, configuraremos el nombre de dominio y habilitaremos la conexión segura HTTPS de Nginx para GitLab.

Ve al directorio ‘/etc/gitlab’ y edita la configuración ‘gitlab.rb’.

cd /etc/gitlab/
vim gitlab.rb

En la línea ‘external_url’, cambia el nombre de dominio por defecto por el tuyo propio y cambia el protocolo http por https como se indica a continuación.

external_url 'https://gitlab.hakase-labs.io'

A continuación, añade la siguiente configuración después de la línea ‘external_url’, y asegúrate de cambiar el certificado SSL y DHPARAM por los tuyos.

nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.hakase-labs.io/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.hakase-labs.io/privkey.pem"
nginx['ssl_dhparam'] = "/etc/gitlab/dhparams.pem"

Guarda y cierra.

Configurar GitLab CE

A continuación, ejecuta el siguiente comando para reconfigurar el GitLab y aplicar la nueva configuración.

sudo gitlab-ctl reconfigure

El comando invocará el script de Chef que alimentó el GitLab Omnibus para reconfigurar tu instalación de GitLab.

Reconfigura GitLab CE

Una vez completado todo, pasa al siguiente paso.

Paso 5 – Configurar Firewalld

Tras habilitar el HTTPS en GitLab, añadiremos los servicios HTTP y HTTPS al firewalld.

Ejecuta el siguiente comando firewall-cmd.

firewall-cmd --add-service=ssh --permanent
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent

Después, recarga el servicio firewalld para aplicar una nueva configuración.

firewall-cmd --reload

Ahora comprueba todos los servicios en firewalld utilizando el comando de abajo.

firewall-cmd --list-services

Ahora tendrás los servicios SSH, HTTP y HTTPS en la lista.

Configurar FIrewalld

Como resultado, has añadido los servicios HTTP y HTTPS al firewalld, y GitLab ya está listo y accesible.

Paso 6 – Postinstalación de GitLab

Abre tu navegador web y escribe tu nombre de dominio de instalación de GitLab en la barra de direcciones. El mío es: https://gitlab.hakase-labs.io/, utiliza tu dirección.

Y serás redirigido a la página de restablecimiento de contraseña.

– Restablecer contraseña por defecto de GitLab

Escribe la nueva contraseña para el usuario por defecto de GitLab‘root‘.

GitLab restablecer contraseña por defecto

Ahora haz clic en el botón«Cambia tu contraseña» y serás redirigido a la página de inicio de sesión de GitLab.

Página de GitLab Logih

Escribe el usuario por defecto ‘root‘ y tu contraseña, luego haz clic en el botón ‘Iniciar sesión‘, y obtendrás el Panel de Control de GitLab como se muestra a continuación.

Panel de control de GitLab

Cambiar perfil y nombre de usuario

Después de iniciar sesión en el Panel de Control de GitLab, cambia el usuario por defecto ‘root‘ por el tuyo propio.

Para cambiar la configuración de tu perfil, haz clic en la parte superior derecha del icono de tu perfil, y haz clic en el icono‘Configuración‘ para configurar tu perfil.

Ahora escribe tu nuevo nombre de usuario y dirección de correo electrónico, luego desplázate hasta la parte inferior de la página y haz clic en el botón «Actualizar configuración del perfil».

Cambiar perfil GitLab

A continuación, haz clic en la pestaña«Cuenta«, cambia el nombre de usuario predeterminado«root» por el tuyo, y luego haz clic en el botón «Actualizarnombre de usuario«.

Cambiar el nombre de usuario root por defecto Gitlab

Como resultado, el nombre de usuario por defecto y la dirección de correo electrónico del usuario root se han cambiado.

Añade la clave SSH

Ahora añadiremos la clave SSH a GitLab. Asegúrate de que tienes la clave SSH, y si no la tienes, puedes generar la clave SSH utilizando el siguiente comando.

ssh-keygen

Ahora obtendrás tu clave SSH generada en el directorio‘~/.ssh‘, dentro del directorio home del usuario.

Generar clave SSH

A continuación, vuelve al panel de control de GitLab y haz clic en el menú de la pestaña «Claves SSH».

Copia el contenido de tu clave pública SSH‘~/.ssh/id_rsa.pub‘ y pégalo en la página de GitLab, después haz clic en el botón‘Añadir clave‘.

Añadir clave SSH a GitLab

Como resultado, la clave SSH se ha añadido a GitLab.

Configurar el límite de proyectos por cuenta

En el menú superior central, haz clic en el botón«Configuración«.

Ahora haz clic en «Configuración» > «General«, en la sección «Cuenta y límite», haz clic en«Expandir«.

Configurar Proyecto Límite Gitlab

Cambia el«Límite de proyectos por defecto» como necesites y haz clic en el botón ‘Guardar‘.

Como resultado, se ha cambiado el límite de proyectos por defecto para cada cuenta.

Paso 7 – Crear Nuevo Proyecto y Confirmar

En este paso, probaremos nuestra instalación de GitLab creando un nuevo proyecto GitLab.

Crear un nuevo proyecto GitLab

Para crear un nuevo proyecto en GitLab, haz clic en el botón«+» del menú superior derecho.

Gitlab Crear nuevo proyecto

Ahora escribe los detalles del nombre de tu proyecto, el slug del proyecto y la descripción, y luego haz clic en el botón ‘Crear proyecto‘.

Crear nuevo proyecto Gitlab

Y ya está creado el nuevo proyecto GitLab.

Configura GitLab en tu portátil

Después de crear un nuevo proyecto en GitLab, vamos a configurar la cuenta de GitLab en el ordenador local.

Abre tu terminal y ejecuta el siguiente comando git para configurar el usuario y la dirección de correo electrónico predeterminados para git.

git config --global user.name "hakase"
git config --global user.email "[email protected]"

A continuación, clona tu proyecto de GitLab en el directorio de tu ordenador local y entra en él.

git clone https://gitlab.hakase-labs.io/hakase/test-project.git
cd test-project/

Como resultado, se han configurado el usuario y el correo electrónico predeterminados para Git, y el proyecto GitLab se ha clonado en el ordenador local.

Configurar el proyecto Gitlab en el ordenador local

Haz un cambio y confírmalo

Ahora tenemos el proyecto GitLab en nuestro ordenador local, y vamos a probar a cambiar el archivo ‘README.md’ y hacer el primer commit a nuestro proyecto GitLab.

Edita el archivo ‘README.md’ con tu editor.

vim README.md

Ahora haz un cambio en el archivo, luego guárdalo y ciérralo.

Después, añade la nueva versión del archivo ‘README.md’ y haz el commit’ utilizando el comando de abajo.

git add .
git commit -m "Change README.md"

Ahora empuja los nuevos cambios al repositorio de GitLab utilizando el comando git push de abajo.

git push origin master

Los nuevos cambios del archivo ‘README.md’ han sido enviados al repositorio de GitLab.

Git Push Origen maestro

A continuación, vuelve a tu repositorio de GitLab en tu navegador web y obtendrás la nueva versión del archivo ‘README.md’ con el comentario de confirmación en la parte superior.

Gitlab Push

Como resultado, hemos creado con éxito un nuevo proyecto GitLab y hemos realizado cambios en él.

Finalmente, la instalación y configuración de GitLab en el Servidor CentOS 8 se ha completado con éxito.

También te podría gustar...