Configura un servidor GitLab en AWS EC2 en minutos

GitLab es una plataforma poderosa para la gestión de repositorios de código, CI/CD y colaboración en equipo.

En este tutorial, te mostraré cómo instalar y configurar GitLab en una instancia EC2 con Amazon Linux 2023. ¡Manos a la obra!


Requisitos previos

Antes de empezar, asegúrate de cumplir con estos puntos:

1. Instancia EC2 configurada:

  • Asegúrate de que tu grupo de seguridad permita tráfico en los puertos 80 (HTTP), 443 (HTTPS) y opcionalmente el 22 (SSH).
  • Si planeas usar un dominio o IP estática, asigna un Elastic IP.

2. Dominio (Opcional)

  • Configura un registro que apunte a la IP pública de tu instancia si tienes un dominio.

Pasos para instalar GitLab en EC2

1. Actualiza tu sistema

Mantén tu sistema operativo al día:

1
sudo yum update -y

2. Instala las dependencias necesarias

GitLab requiere ciertos paquetes para funcionar correctamente:

1
sudo yum install -y curl policycoreutils-python-utils openssh-server

Si encuentras un error relacionado con paquetes en conflicto, usa este comando:

1
sudo yum install -y curl policycoreutils-python-utils openssh-server --allowerasing

3. Configura el servicio SSH

Habilita y arranca el servicio SSH:

1
2
sudo systemctl enable sshd
sudo systemctl start sshd

4. Instala GitLab

4.1. Agrega el repositorio oficial de GitLab

Usa este comando para configurar el repositorio:

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

4.2. Instala GitLab Community Edition (CE)

Instala GitLab y especifica la URL externa (IP o dominio):

1
sudo EXTERNAL_URL="http://<tu-ip-o-dominio>" yum install -y gitlab-ce

Reemplaza <tu-ip-o-dominio> con la IP pública de tu instancia o tu dominio.


5. Configura GitLab

Ejecuta el script de configuración inicial para aplicar los ajustes:

1
sudo gitlab-ctl reconfigure

6. Accede a GitLab

6.1. Obtén la contraseña inicial de root

Después de la instalación, GitLab genera una contraseña para el usuario root. Encuéntrala con:

1
sudo cat /etc/gitlab/initial_root_password

El resultado será algo como:

1
2
# WARNING: This value is valid only in the initial login.
Password: A1b2C3d4E5f6G7h8

Ejemplo contraseña root inicial

6.2. Ingresa al navegador

Abre tu navegador y accede a http://<tu-ip-o-dominio>. Usa estas credenciales:

  • Usuario: root
  • Contraseña: La generada en el archivo anterior.

GitLab te pedirá cambiar esta contraseña en el primer inicio de sesión.

Nota: Si el archivo /etc/gitlab/initial_root_password ya no existe, puede haberse eliminado automáticamente después de 24 horas. Si olvidaste la contraseña, puedes restablecerla manualmente.

Pantalla inicial GitLab

Pantalla inicial administrador GitLab


Opcional: Configura HTTPS con Let’s Encrypt

Edita la configuración de GitLab

1. Abre el archivo de configuración:

1
sudo nano /etc/gitlab/gitlab.rb

2. Cambia la URL externa para usar HTTPS y habilita Let’s Encrypt:

1
2
external_url "https://<tu-dominio>"
letsencrypt['enable'] = true

3. Guarda los cambios y reconfigura GitLab:

1
sudo gitlab-ctl reconfigure

Reinicia GitLab

Reinicia el servicio para asegurarte de que los cambios se apliquen correctamente:

1
sudo gitlab-ctl restart

Notas finales

  • Firewall y conectividad: Revisa los grupos de seguridad de tu instancia y el firewall local para asegurarte de que los puertos necesarios están abiertos.
  • Documentación oficial: Consulta la documentación de GitLab para configuraciones avanzadas.
  • Dominio: Usar un dominio con HTTPS mejora la seguridad y profesionalismo de tu plataforma GitLab.

¿Tienes dudas o comentarios? ¡Déjalos aquí y estaré encantado de ayudarte a resolverlos! ☺️👇🏻