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.
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 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.
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.
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.
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.
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‘.
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.
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.
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».
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«.
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.
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‘.
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«.
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.
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‘.
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.
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.
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.
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.