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 ofrece 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 funciones 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' provisto 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.
¿Qué 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 dependencias de paquetes
Primero, instalaremos algunas dependencias de paquetes que necesita GitLab, incluidos los paquetes de 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:Agregar repositorio e instalar 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 siguiente comando dnf.
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 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 generaron 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 que haya 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 siguiente comando.
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 'Cambiar su contraseña ' y será redirigido a la página de inicio de sesión de GitLab.
Escriba el usuario predeterminado 'raíz ' y su contraseña, luego haga clic en '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 la 'raíz predeterminada ' usuario con 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 '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 'actualizar configuración de perfil botón '.
A continuación, haga clic en 'Cuenta ', cambie el nombre de usuario predeterminado 'root ' con el tuyo, luego haz clic en 'actualizar nombre de usuario botón '.
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 '~/.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 "Claves SSH".
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 'Agregar clave botón '.
Como resultado, la clave SSH se agregó a GitLab.
Configurar límite de proyecto por cuenta
En el menú central superior, haga clic en 'Configuración botón '.
Ahora haga clic en 'Configuración'> 'General ', en la sección 'Cuenta y límite', haga clic en 'Expandir '.
Cambiar el "Límite de proyectos predeterminado " como necesite y haga clic en 'Guardar botón '.
Como resultado, se modificó el límite de proyecto predeterminado para cada cuenta.
Paso 7:Crear 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 '+ ' Botón de conexión 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 'Crear proyecto botón '.
Y se ha creado el nuevo proyecto GitLab.
Configura GitLab en tu Laptop
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 de 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.
Hacer un cambio y confirmarlo
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 con el siguiente comando.
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, vuelva 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.