Cómo instalar y configurar GitLab CE en CentOS 8

GitLab es un administrador de repositorios de código abierto basado en Rails desarrollado por GitLab Inc. Es un administrador de repositorios git basado en la web que le permite a su equipo colaborar en la codificación, prueba e implementación de aplicaciones. GitLab proporciona varias funciones, que incluyen wikis, seguimiento de problemas, revisiones de código y fuentes de actividad.
GitLab Inc ofrece 4 productos:
- Gitlab CE (Community Edition): autohospedado y gratuito; apoyo del foro de la comunidad.
- Gitlab EE (Enterprise Edition): autohospedado y de pago; viene con características adicionales.
- GitLab.com – SaaS y gratis.
- GitLab.io: instancia privada de GitLab administrada por GitLab Inc.
En este tutorial, le mostraremos cómo instalar GitLab CE en el servidor CentOS 8. Instalaremos GitLab CE usando el paquete ‘omnibus’ proporcionado por GitLab, haremos algunas configuraciones básicas de GitLab y probaremos para crear un nuevo proyecto de GitLab.
Requisito previo
Para esta guía, instalaremos GitLab CE en la última versión del servidor CentOS 8 con 4 GB de RAM, 30 GB de espacio libre en disco y 2 CPU.
¿Lo que haremos?
- Instalar dependencias de paquetes
- Agregar repositorio e instalar GitLab CE (Community Edition)
- Generar certificado SSL Letsencrypt y DHPARAM
- Habilitar Nginx HTTPS para GitLab
- Configurar cortafuegos
- Instalación posterior de GitLab
- Pruebas
Paso 1: instalar las dependencias de los paquetes
Primero, instalaremos algunas dependencias de paquetes que necesita GitLab, incluidos los paquetes OpenSSH y Postfix.
Instale las dependencias de paquetes para GitLab CE usando el comando dnf a continuación.
sudo dnf -y install curl policycoreutils openssh-server openssh-clients postfix
Una vez completada toda la instalación, inicie los servicios SSH y Postfix.
systemctl start sshd systemctl start postfix
A continuación, agregue ambos servicios al inicio del sistema.
systemctl enable sshd systemctl enable postfix
Como resultado, se completó la instalación de las dependencias de los paquetes.
Paso 2: agregue el repositorio e instale GitLab
En este paso, agregaremos el repositorio oficial de GitLab a nuestro sistema CentOS 8 e instalaremos los paquetes de GitLab CE.
Agregue el repositorio de GitLab usando el script de instalación a continuación.
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
Una vez que todo esté completo, a continuación se muestra el resultado que obtendrá.
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, ejecute el comando dnf a continuación.
sudo dnf repolist
Y obtendrá el repositorio de GitLab en la lista.
Luego, instale los paquetes de GitLab CE usando el comando
sudo dnf install gitlab-ce -y
Una vez que se complete toda la instalación, obtendrá el resultado que se muestra a continuación.
Como resultado, GitLab CE Community Edition ahora está instalado en el sistema CentOS 8.
Paso 3: generar SSL Letsencrypt y DHPARAM
Para este tutorial, ejecutaremos GitLab en la conexión HTTPS segura y usaremos SSL Letsencrypt de Letsencrypt y DHAPRAM que se puede generar con el comando openssl.
En este paso, generaremos el SSL Letsencrypt usando la herramienta de línea de comandos certbot, que se puede instalar desde el repositorio de EPEL, y luego generaremos el certificado DHPARAM usando el archivo openssl.
Agregue el repositorio EPEL al sistema CentOS 8 usando el siguiente comando.
sudo dnf install epel-release
Luego, instale los paquetes de certbot usando el comando dnf a continuación.
sudo dnf install certbot
Una vez que se complete toda la instalación, genere SSL Letsencryp para GitLab usando el comando certbot a continuación.
certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d gitlab.hakase-labs.io
Ahora sus certificados SSL estarán disponibles en el directorio ‘/etc/letsencrypt/live/gitlab.hakase-labs.io’, compruébelo con el siguiente comando.
ls -lah /etc/letsencrypt/live/gitlab.hakase-labs.io/
Obtendrá los certificados ‘fullchain.pem’ y ‘privkey.pem’.
Luego, genere el certificado DHPARAM en el directorio ‘/etc/gitlab’ usando el comando openssl a continuación.
sudo openssl dhparam -out /etc/gitlab/dhparams.pem 2048
Una vez que todo esté completo, cambie 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 Nginx HTTPS para GitLab.
Vaya al directorio ‘/etc/gitlab’ y edite la configuración ‘gitlab.rb’.
cd /etc/gitlab/ vim gitlab.rb
En la línea ‘external_url’, cambie el nombre de dominio predeterminado por el suyo propio y cambie el protocolo http a https como se muestra a continuación.
external_url 'https://gitlab.hakase-labs.io'
A continuación, agregue la siguiente configuración después de la línea ‘external_url’ y asegúrese de cambiar el certificado SSL y DHPARAM con el suyo propio.
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"
Guardar y cerrar.
A continuación, ejecute el siguiente comando para reconfigurar GitLab y aplicar la nueva configuración.
sudo gitlab-ctl reconfigure
El comando invocará el script de Chef que impulsó Omnibus GitLab para reconfigurar su instalación de GitLab.
Una vez completado todo, vaya al siguiente paso.
Paso 5: configurar el cortafuegos
Después de habilitar HTTPS en GitLab, agregaremos los servicios HTTP y HTTPS al firewalld.
Ejecute el comando firewall-cmd a continuación.
firewall-cmd --add-service=ssh --permanent firewall-cmd --add-service=http --permanent firewall-cmd --add-service=https --permanent
Después de eso, vuelva a cargar el servicio firewalld para aplicar una nueva configuración.
firewall-cmd --reload
Ahora verifique todos los servicios en firewalld usando el comando a continuación.
firewall-cmd --list-services
Ahora obtendrá los servicios SSH, HTTP y HTTPS en la lista.
Como resultado, agregó los servicios HTTP y HTTPS al firewalld, y GitLab ahora está listo y accesible.
Paso 6: instalación posterior de GitLab
Abra su navegador web y escriba la instalación de su nombre de dominio GitLab en la barra de direcciones. El mío es: https://gitlab.hakase-labs.io/, usa tu dirección.
Y será redirigido a la página de restablecimiento de contraseña.
– GitLab Restablecer contraseña predeterminada
Escriba la nueva contraseña para el usuario predeterminado de GitLab ‘root’.
Ahora haga clic en el botón ‘Cambiar su contraseña’ y será redirigido a la página de inicio de sesión de GitLab.
Escriba el usuario predeterminado ‘root’ y su contraseña, luego haga clic en el botón ‘Iniciar sesión’ y obtendrá el Panel 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, cambie el usuario ‘raíz’ predeterminado por el suyo propio.
Para cambiar la configuración de su perfil, haga clic en la parte superior derecha de su icono de perfil y haga clic en el icono ‘Configuración’ para configurar su perfil.
Ahora escriba su nuevo nombre de usuario y dirección de correo electrónico, luego desplácese hasta la página inferior y haga clic en el botón ‘actualizar configuración de perfil’.
A continuación, haga clic en la pestaña ‘Cuenta’, cambie el nombre de usuario predeterminado ‘root’ por el suyo propio y luego haga clic en el botón ‘actualizar nombre de usuario’.
Como resultado, se cambiaron el nombre de usuario y la dirección de correo electrónico predeterminados para el usuario root.
Añadir clave SSH
Ahora agregaremos la clave SSH al GitLab. Asegúrese de tener la clave SSH y, si no la tiene, puede generar la clave SSH con el siguiente comando.
ssh-keygen
Ahora obtendrá su clave SSH generada en el directorio ‘~/.ssh’, dentro del directorio de inicio del usuario.
A continuación, vuelva al panel de control de GitLab y haga clic en el menú de la pestaña ‘SSH Keys’.
Copie el contenido de su clave pública SSH ‘~/.ssh/id_rsa.pub’ y péguelo en la página de GitLab, luego haga clic en el botón ‘Agregar clave’.
Como resultado, la clave SSH se agregó a GitLab.
Configurar límite de proyectos por cuenta
En el menú central superior, haga clic en el botón ‘Configuración’.
Ahora haga clic en ‘Configuración’ > ‘General’, en la sección ‘Cuenta y límite’, haga clic en ‘Expandir’.
Cambie el «Límite de proyectos predeterminado» según lo necesite y haga clic en el botón «Guardar».
Como resultado, se modificó el límite de proyecto predeterminado para cada cuenta.
Paso 7: crear un nuevo proyecto y confirmar
En este paso, probaremos nuestra instalación de GitLab creando un nuevo proyecto de GitLab.
Crear nuevo proyecto de GitLab
Para crear un nuevo proyecto en GitLab, haga clic en el botón de complemento ‘+’ en el menú superior derecho.
Ahora escriba los detalles del nombre de su proyecto, el slug del proyecto y la descripción, luego haga clic en el botón ‘Crear proyecto’.
Y se ha creado el nuevo proyecto GitLab.
Configure GitLab en su computadora portátil
Después de crear un nuevo proyecto en GitLab, configuraremos la cuenta de GitLab en la computadora local.
Abra su terminal y ejecute 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, clone su proyecto GitLab en el directorio de su computadora local y acceda a él.
git clone https://gitlab.hakase-labs.io/hakase/test-project.git cd test-project/
Como resultado, se configuraron el usuario y el correo electrónico predeterminados para Git, y el proyecto de GitLab se clonó en la computadora local.
Haz un cambio y comprométete
Ahora tenemos el proyecto GitLab en nuestra computadora local, y probaremos para cambiar el archivo ‘README.md’ y realizar la primera confirmación en nuestro proyecto GitLab.
Edite el archivo ‘README.md’ usando su editor.
vim README.md
Ahora haga un cambio en el archivo, luego guarde y cierre.
Después de eso, agregue la nueva versión del archivo ‘README.md’ y confirme ‘usando el comando a continuación.
git add . git commit -m "Change README.md"
Ahora envíe los nuevos cambios al repositorio de GitLab usando el comando git push a continuación.
git push origin master
Los nuevos cambios del archivo ‘README.md’ se han enviado al repositorio de GitLab.
A continuación, regrese a su repositorio de GitLab en su navegador web y obtendrá la nueva versión del archivo ‘README.md’ con el comentario de confirmación en la parte superior.
Como resultado, creamos con éxito un nuevo proyecto de GitLab y realizamos cambios en él.
Finalmente, la instalación y configuración de GitLab en CentOS 8 Server se completó con éxito.