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, analizaremos la instalación paso a paso de GitLab CE (Community Edition) en el servidor CentOS 7 con 4 GB de RAM. En uno de nuestros tutoriales anteriores, hicimos la instalación de GitLab manualmente. Pero aquí, usaremos el paquete 'ómnibus' provisto por GitLab para nuestra instalación.
Lo que haremos
- Instalar paquetes
- Instalar GitLab
- Configurar URL de GitLab
- Generar SSL Let's encrypt y certificado DHPARAM
- Habilitar Nginx HTTPS para GitLab
- Configurar cortafuegos
- Realizar la instalación de GitLab
- Pruebas
Requisitos
- Servidor CentOS 7:64 bits
- RAM mínima 2GB
- Privilegios de raíz
Paso 1 - Instalar paquetes
En este paso, descargaremos/instalaremos algunos paquetes necesarios para la instalación de GitLab. Usaremos curl para descargar el instalador del repositorio, policycoreutils para el administrador de SELinux, OpenSSH y postfix como servidor SMTP local.
Instale todos esos paquetes con el siguiente comando yum.
yum -y install curl policycoreutils openssh-server openssh-clients postfix
Después de eso, inicie los servicios ssh y postfix.
systemctl start sshd
systemctl start postfix
Ahora habilítelos para que se ejecuten automáticamente en el momento del arranque.
systemctl enable sshd
systemctl enable postfix
Todos los paquetes necesarios para la instalación de GitLab ahora están instalados en el servidor.
Paso 2:instalar GitLab
GitLab proporciona un instalador para agregar el repositorio de GitLab CE. Descargue el instalador con curl y ejecute el script (como se muestra a continuación) para agregar un nuevo repositorio GitLab CE.
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
El repositorio de GitLab CE se ha agregado al sistema.
Ahora instala GitLab con el siguiente comando yum.
yum -y install gitlab-ce
Cuando se complete la instalación, obtendrá el resultado como se muestra a continuación.
Con esto, GitLab CE ahora está instalado en el servidor CentOS 7.
Paso 3:configurar la URL de GitLab
Para este tutorial, usaremos un nombre de dominio para GitLab. Específicamente, usaremos el nombre de dominio 'gitlab.hakase-labs.co.'
Vaya al directorio de configuración de GitLab '/etc/gitlab' y luego edite el archivo de configuración 'gitlab.rb' con vim editor.
cd /etc/gitlab/
vim gitlab.rb
Cambie la línea external_url con el nombre de dominio 'gitlab.hakase-labs.co '.
external_url 'http://gitlab.hakase-labs.co'
Guarde los cambios y salga de vim.
Paso 4 - Generar SSL Let's encrypt y certificado DHPARAM
Para la capa básica de seguridad, usaremos SSL para nuestro sitio de GitLab. Usaremos un certificado SSL gratuito de Letsencrypt y generaremos un certificado DHPARAM para agregar una capa de seguridad adicional.
Para generar el certificado Letsencrypt, necesitamos instalar la herramienta de línea de comandos de letsencrypt, que está disponible en el repositorio.
Instale la herramienta Letsencrypt en CentOS 7 con el comando yum a continuación.
yum -y install letsencrypt
Una vez completada la instalación, genere un nuevo certificado SSL letsencrypt con el siguiente comando.
letsencrypt certonly --standalone -d gitlab.hakase-labs.co
Nota: Mientras genera SSL Letsencrypt, asegúrese de que su puerto HTTP y HTTPS no estén bloqueados por el firewall.
Escriba su dirección de correo electrónico para renovar la notificación, luego escriba 'A' para el acuerdo de Términos de servicio de Letsencrypt, y finalmente escriba 'N' y presione Entrar nuevamente.
Y si ve el resultado como se muestra a continuación, significa que su certificado para el nombre de dominio ha sido generado y almacenado en el directorio '/etc/letsencrypt/live'.
A continuación, cree un nuevo directorio 'ssl' en el directorio de configuración de GitLab '/etc/gitlab/'.
mkdir -p /etc/gitlab/ssl/
Ahora genere el archivo pem del certificado DHPARAM usando OpenSSL. La parte más grande es más segura.
sudo openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048
Y después de generar el certificado DHPARAM, cambie el permiso del archivo de certificado a 600.
chmod 600 /etc/gitlab/ssl/*
Entonces se ha generado el certificado SSL Letsencrypt y DHPARAM para la instalación de GitLab.
Paso 5:habilite Nginx HTTPS para GitLab
En esta etapa, ya tenemos archivos de certificados SSL gratuitos de Letsencrypt y el certificado DHPARAM que se genera mediante el comando OpenSSL. Y en este paso, habilitaremos HTTPS para el sitio de GitLab. Habilitaremos HTTPS y forzaremos HTTP a la conexión HTTPS.
Primero, vaya al directorio de configuración de GitLab y edite el archivo de configuración 'gitlab.rb'.
cd /etc/gitlab/
vim gitlab.rb
Y cambie HTTP a HTTPS en la línea external_url.
external_url 'https://gitlab.hakase-labs.co'
Luego pegue la siguiente configuración en la configuración de línea 'external_url'.
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.hakase-labs.co/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.hakase-labs.co/privkey.pem"
nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"
Guarde los cambios y salga de vim.
Finalmente, aplique la configuración de GitLab usando el siguiente comando.
gitlab-ctl reconfigure
Y cuando todo esté completo, debería obtener el resultado como se muestra a continuación.
Paso 6:configurar el cortafuegos
En este tutorial, ejecutaremos GitLab bajo el firewall Firewalld. Así que asegúrese de que esté instalado en el sistema. Si no tiene el paquete, puede instalarlo usando el siguiente comando.
yum -y install firewalld
Inicie firewalld y permita que se ejecute automáticamente en el momento del arranque con los comandos systemctl como se muestra a continuación.
systemctl start firewalld
systemctl enable firewalld
A continuación, abra nuevos puertos para nuestros servicios. Abriremos puertos SSH, HTTP y HTTPS para nuestra configuración de GitLab. Ejecute los comandos firewall-cmd a continuación para abrir los puertos.
firewall-cmd --permanent --add-service ssh
firewall-cmd --permanent --add-service http
firewall-cmd --permanent --add-service https
Ahora vuelva a cargar el cortafuegos y compruebe la configuración del cortafuegos. Asegúrese de que SSH, HTTP y HTTPS estén en la lista.
firewall-cmd --reload
firewall-cmd --list-all
Entonces, con esto, se completó la configuración de Firewalld para GitLab.
Paso 7:realizar la instalación
Entonces, GitLab se instaló en el sistema y se ejecuta bajo el firewall Firewalld. En este paso, haremos algunas configuraciones rápidas después de instalar GitLab en el servidor.
Restablecer contraseña de root de GitLab
Abra su navegador web y escriba la URL de gitlab 'gitlab.hakase-labs.co'. Será redirigido a la conexión HTTPS. Cambie la contraseña raíz con su propia contraseña y haga clic en el botón 'Cambiar su contraseña' para confirmar.
Ahora puede iniciar sesión en el panel de control de GitLab con el usuario predeterminado 'root' y su propia contraseña.
Cambiar perfil y nombre de usuario
Después de iniciar sesión en el panel de control de GitLab, haga clic en la parte superior derecha de su icono de perfil y haga clic en el icono 'Configuración' para configurar su perfil.
En la pestaña 'Perfil', cambie su nombre y dirección de correo electrónico, luego haga clic en el botón 'Actualizar configuración de perfil' en la parte inferior para confirmar.
Luego, vaya a la pestaña 'Cuenta' y cambie el nombre de usuario raíz predeterminado con su propio nombre de usuario, luego haga clic en el botón 'Actualizar nombre de usuario'.
Añadir clave SSH
Asegúrese de que ya tiene una clave, si no tiene una clave SSH, puede generar una usando el siguiente comando.
ssh-keygen
Y obtendrá dos claves en el directorio ~/.ssh/. 'id_rsa' sería su clave privada e 'id_rsa.pub' sería su clave pública.
A continuación, vuelva al navegador web y haga clic en la pestaña 'Clave SSH'. Copie el contenido del archivo 'id_rsa.pub' y péguelo en el cuadro de clave y haga clic en 'Agregar clave'.
Con esto, la clave SSH se ha actualizado.
Restricciones de registro y configuración de límites
Haga clic en el ícono 'Área de administración', luego haga clic en el ícono de ajustes y seleccione 'Configuración'.
En la sección 'Configuración de cuenta y límite', puede configurar el proyecto máximo por usuario. Y en la sección 'Restricciones de registro', puede agregar el nombre de dominio de su correo electrónico al cuadro de lista blanca.
Después de hacer todo esto, desplácese hasta la parte inferior y haga clic en 'Guardar'.
Eso es todo. Se completó la configuración básica de GitLab.
Paso 8 - Prueba
Ahora, haremos algunas pruebas con nuestro GitLab autohospedado.
Crear nuevo proyecto
Haga clic en el ícono más en la parte superior derecha para crear un nuevo repositorio de proyectos.
Escriba el nombre de su proyecto, la descripción y la configuración de visibilidad de configuración para su proyecto. Y luego haga clic en el botón 'Crear proyecto'.
Con esto, el proyecto ha sido creado.
Probar primera confirmación
Después de crear su proyecto (howtoforge en nuestro caso), será redirigido a la página del proyecto. Ahora comience a agregar contenido nuevo al repositorio.
Asegúrate de que Git esté instalado en tu computadora.
Para esta prueba, necesitamos configurar una cuenta de Git en la computadora, algo que puede hacer usando los siguientes comandos:
git config --global user.name "hakase"
git config --global user.email "[email protected]"
Clone el repositorio y agregue un nuevo archivo README.md.
git clone https://[email protected]/hakase/howtoforge.git
cd howtoforge/
vim README.md
Se le pedirá la contraseña de hakase. Escriba la misma contraseña que usamos al acceder a GitLab por primera vez y luego agregue contenido nuevo al archivo README.md.
Confirme nuevos cambios en el repositorio usando los siguientes comandos.
git add .
git commit -m 'Add README.md file by hakase-labs'
A continuación, envíe el repositorio al servidor de GitLab.
git push origin master
Escriba su contraseña y presione Entrar para continuar. Debería ver el resultado como se muestra a continuación.
Ahora abra el proyecto (howtoforge en nuestro caso) desde su navegador web y verá que se ha agregado un nuevo archivo README.md al repositorio.
Esto confirma que Gitlab se instaló con éxito en Ubuntu CentOS 7 con 4 GB de memoria.