GitLab CE, o Community Edition, es una aplicación de código abierto que se utiliza, principalmente, para alojar repositorios Git, con funciones adicionales relacionadas con el desarrollo, como el seguimiento de incidentes. Está diseñado para alojarse usando su propia infraestructura, y ofrece flexibilidad al implementarse como almacén repositorio interno para su equipo de desarrollo, una forma pública de interactuar con los usuarios o un medio para que colaboradores alojen sus propios proyectos.
El proyecto GitLab hace que sea relativamente fácil configurar una instancia de GitLab en su propio hardware con un sencillo mecanismo de instalación. En esta guía, explicaremos cómo instalar y configurar GitLab en un servidor Ubuntu 18.04.
Para este tutorial, necesitará lo siguiente:
Los requisitos de hardware publicados de GitLab recomiendan usar un servidor con lo siguiente:
Si bien es posible que se pueda arreglar sustituyendo algún espacio de intercambio por RAM, no se recomienda hacerlo. Para esta guía, asumiremos que tiene, como mínimo, los recursos anteriores.
Antes de poder instalar GitLab, es importante instalar algunos de los programas de software que utiliza durante la instalación y de forma continua. Afortunadamente, todo el software requerido puede instalarse fácilmente desde los repositorios del paquete predeterminado de Ubuntu.
Ya que esta es la primera vez que usamos apt
durante esta sesión, podemos actualizar el índice de paquete local y, luego, instalar las dependencias escribiendo lo siguiente:
- sudo apt update
- sudo apt install ca-certificates curl openssh-server postfix
Probablemente, ya tenga algunos de estos programas de software instalados. Para la instalación de postfix
, seleccione el sitio de Internet cuando se le indique. En la siguiente pantalla, introduzca el nombre de dominio de su servidor para configurar la manera en que el sistema enviará el correo.
Ahora que las dependencias están instaladas, podemos instalar GitLab. Este es un proceso sencillo que utiliza una secuencia de comandos de instalación para configurar su sistema con los repositorios de GitLab.
Vaya al directorio /tmp
y descargue la secuencia de comandos de instalación:
- cd /tmp
- curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh
Examine la secuencia de comandos descargada para asegurarse de sentirse cómodo con las acciones que realizará. También puede encontrar una versión alojada de la secuencia de comandos aquí:
- less /tmp/script.deb.sh
Cuando esté satisfecho con la seguridad de la secuencia de comandos, ejecute el instalador:
- sudo bash /tmp/script.deb.sh
La secuencia de comandos configurará su servidor para que utilice los repositorios que mantiene GitLab. Esto le permite administrar GitLab con las mismas herramientas de administración de paquetes que utiliza para otros paquetes del sistema. Una vez completado esto, pude instalar la aplicación GitLab con apt
:
- sudo apt install gitlab-ce
Esto instalará los componentes necesarios en su sistema.
Antes de configurar GitLab, deberá asegurarse de que las reglas de su firewall permitan el tráfico web. Si siguió la guía indicada en los requisitos previos, tendrá un firewall ufw
habilitado.
Consulte el estado actual de su firewall activo escribiendo lo siguiente:
- sudo ufw status
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Como puede ver, las reglas actuales permiten tráfico SSH, pero el acceso a otros servicios está restringido. Ya que GitLab es una aplicación web, debemos permitir el acceso HTTP. Debido a que aprovecharemos la capacidad de GitLab para solicitar y habilitar un certificado TLS/SSL gratuito de Let’s Encrypt, también vamos a permitir el acceso HTTPS.
El protocolo para asignar un puerto para HTTP y HTTPS está disponible en el archivo /etc/services
, para que podamos permitir ese tráfico entrante por nombre. Si aún no tiene el tráfico OpenSSH, habilitado, también deberá permitir ese tráfico ahora:
- sudo ufw allow http
- sudo ufw allow https
- sudo ufw allow OpenSSH
Vuelva a comprobar ufw status
; debería ver el acceso configurado, por lo menos, para estos dos servicios:
- sudo ufw status
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
El resultado anterior indica que la interfaz web de GitLab será accesible una vez que configuremos la aplicación.
Antes de poder usar la aplicación, deberá actualizar el archivo de configuración y ejecutar un comando de reconfiguración. Primero, abra el archivo de configuración de GitLab:
- sudo nano /etc/gitlab/gitlab.rb
Cerca de la parte superior, se encuentra la línea de configuración external_url
. Actualícela para que coincida con su dominio. Cambie http
por https
para que GitLab redirija automáticamente a los usuarios al sitio protegido por el certificado Let´s Encrypt:
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
external_url 'https://example.com'
A continuación, busque el ajuste letsencrypt['contact_emails']
. Este ajuste define una lista de direcciones de correo electrónico que el proyecto de Let’s Encrypt puede usar para ponerse en contacto con usted si hay problemas con su dominio. Es recomendable quitar los comentarios y completar este ajuste para que esté al tanto cualquier problema:
letsencrypt['contact_emails'] = ['sammy@example.com']
Guarde y cierre el archivo. Ejecute el siguiente comando para reconfigurar GitLab:
- sudo gitlab-ctl reconfigure
Esto inicializará GitLab usando la información que puede encontrar sobre su servidor. Este es un proceso completamente automatizado, por lo que no tendrá que responder ninguna pregunta. El proceso también configurará un certificado Let’s Encrypt para su domino.
Con GitLab ejecutándose y el acceso permitido, podemos realizar algunos ajustes iniciales de la aplicación a través de la interfaz web.
Visite el nombre del dominio de su servidor GitLab en su navegador web:
https://example.com
En su primera visita, verá una solicitud inicial para configurar una contraseña para la cuenta administrativa:
En la solicitud de contraseña inicial, proporcione y confirme una contraseña segura para la cuenta administrativa. Haga clic en el botón Cambiar contraseña cuando haya terminado.
Se lo redirigirá a la página de inicio de sesión convencional de GitLab:
Aquí, puede iniciar sesión con la contraseña que acaba de configurar. Las credenciales son:
Introduzca estos valores en los campos para los usuarios existentes y haga clic en el botón Iniciar sesión. Iniciará sesión en la aplicación y se lo dirigirá a una página de destino que le indicará que comience a añadir proyectos:
Ahora, puede realizar algunos cambios sencillos para configurar GitLab de la forma que desee.
Una de las primeras cosas que debe hacer tras una nueva instalación es mejorar su perfil. GitLab selecciona algunos valores predeterminados razonables, pero estos no suelen ser apropiados una vez que comienza a usar el software.
Para realizar las modificaciones necesarias, haga clic en el icono de usuario en la esquina superior derecha de la interfaz. En el menú desplegable que aparece, seleccione Ajustes:
Se lo dirigirá a la sección Perfil de sus ajustes:
Cambie el nombre “Administrador” y la dirección de correo electrónico “admin@example.com” por datos más precisos. El nombre que seleccione se mostrará a otros usuarios, y el correo electrónico se usará para la detección predeterminada de avatar, las notificaciones, acciones de Git en la interfaz, etc.
Haga clic en el botón Actualizar ajustes de perfil en la parte inferior cuando esté listo:
Se enviará un correo electrónico de confirmación a la dirección que proporcionó. Siga las instrucciones del correo electrónico para confirmar su cuenta y poder comenzar a usarla en GitLab.
A continuación, haga clic en el elemento Cuenta en la barra de menú izquierda:
Aquí, puede encontrar su token de API privado o configurar una autenticación de dos factores. Sin embargo, la funcionalidad en la que estamos interesados en este momento es la sección Cambiar nombre de usuario:
Por defecto, la primera cuenta administrativa recibe el nombre** root**. Ya que este es un nombre de cuenta conocido, es más seguro cambiarlo a un nombre diferente. Seguirá teniendo privilegios administrativos; lo único que cambiará será el nombre. Sustituya **root **por su nombre de usuario preferido:
Haga clic en el botón Actualizar nombre de usuario para realizar el cambio:
La próxima vez que inicie sesión en GitLab, recuerde usar su nuevo nombre de usuario.
En la mayoría de los casos, le convendrá usar claves SSH con Git para interactuar con sus proyectos de GitLab. Para hacerlo, deberá añadir su clave pública SSH a su cuenta de GitLab.
Si ya tiene un par de claves SSH creado en su equipo local, normalmente, podrá ver la clave pública escribiendo lo siguiente:
- cat ~/.ssh/id_rsa.pub
Debería ver una gran porción de texto similar a esta:
Outputssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop
Copie este texto y vuelva a la página Ajustes de perfil en la interfaz web de GitLab.
Si, en su lugar, recibe un mensaje como este, aún no tiene un par de claves SSH configurado en su máquina:
Outputcat: /home/sammy/.ssh/id_rsa.pub: No such file or directory
En este caso, puede crear un par de claves SSH escribiendo lo siguiente:
- ssh-keygen
Acepte los valores predeterminados y, opcionalmente, proporcione una contraseña para proteger la clave de forma local:
OutputGenerating public/private rsa key pair.
Enter file in which to save the key (/home/sammy/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/sammy/.ssh/id_rsa.
Your public key has been saved in /home/sammy/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:I8v5/M5xOicZRZq/XRcSBNxTQV2BZszjlWaIHi5chc0 sammy@gitlab.docsthat.work
The key's randomart image is:
+---[RSA 2048]----+
| ..%o==B|
| *.E =.|
| . ++= B |
| ooo.o . |
| . S .o . .|
| . + .. . o|
| + .o.o ..|
| o .++o . |
| oo=+ |
+----[SHA256]-----+
Una vez que lo haya realizado, podrá visualizar su clave pública como se muestra arriba escribiendo lo siguiente:
- cat ~/.ssh/id_rsa.pub
Outputssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop
Copie el bloque de texto que se muestra, y vuelva a los Ajustes de su perfil en la interfaz web de GitLab.
Haga clic en el elemento Claves SSH en el menú izquierdo:
En el espacio proporcionado, pegue la clave pública que copió desde su máquina local. Dele un título descriptivo, y haga clic en el botón Añadir clave:
Ahora, debería poder administrar sus proyectos y repositorios de GitLab desde su máquina local sin tener que proporcionar las credenciales de su cuenta de GitLab.
Quizá haya advertido que cualquier persona puede registrar una cuenta al visitar su página de destino de la instancia de GitLab. Tal vez sea lo que quiere si está alojando un proyecto público. Sin embargo, muchas veces, es necesario tener ajustes más restrictivos.
Para comenzar, diríjase al área administrativa haciendo clic en el icono **de llave inglesa **en la barra de menú principal ubicada en la parte superior de la página.
En la siguiente página, puede ver un resumen de su instancia de GitLab en su totalidad. Para configurar los ajustes, haga clic en el elemento Ajustes en la parte inferior del menú de la izquierda:
Se lo dirigirá a los ajustes globales de su instancia de GitLab. Aquí, puede configurar varios ajustes que afectan a la capacidad de los nuevos usuarios para registrarse, así como su nivel de acceso.
Si desea deshabilitar los registros por completo (aún podrá crear cuentas manualmente para nuevos usuarios), desplácese a la sección Restricciones de registro.
Anule la selección de la casilla Registro habilitado:
Desplácese a la parte inferior y haga clic en el botón Guardar cambios:
Ahora, la sección de registro no debería estar presente en la página de destino de GitLab.
Si está usando GitLab como parte de una organización que proporciona direcciones de correo electrónico asociadas con un dominio, puede restringir los registros por dominio en vez de deshabilitarlos por completo.
En la sección Restricciones de registro, seleccione el cuadro Enviar correo de confirmación al registrarse, que permitirá a los usuarios iniciar sesión solo tras haber confirmado su correo electrónico.
A continuación, añada su dominio o dominios al cuadro Dominios con permiso de registro, uno por línea. Puede usar el asterisco “*” para especificar dominios comodín:
Desplácese a la parte inferior y haga clic en el botón Guardar cambios:
Ahora, la sección de registro no debería estar presente en la página de destino de GitLab.
Por defecto, los nuevos usuarios pueden crear hasta 10 proyectos. Si desea permitir que nuevos usuarios externos tengan visibilidad y capacidad de manipulación, pero quiere restringir su acceso para crear nuevos proyectos, puede hacerlo en la sección Ajustes de cuenta y límites.
Aquí, puede cambiar el Límite predeterminado de proyectos a 0 o deshabilitar por completo la capacidad de los nuevos usuarios para crear proyectos:
Se podrán continuar añadiendo nuevos usuarios al proyecto manualmente, y tendrán acceso a los proyectos internos o públicos creados por otros usuarios.
Desplácese a la parte inferior y haga clic en el botón Guar dar cambios:
Ahora, los nuevos usuarios podrán crear cuentas, pero no proyectos.
Por defecto, GitLab tiene una tarea programada para renovar los certificados de Let’s Encrypt después de medianoche cada 4 días (el minuto exacto se basa en su external_url
). Puede modificar estos ajustes en el archivo /etc/gitlab/gitlab.rb
. Por ejemplo, si quisiera establecer la renovación cada 7 días a las 12:30, podría hacerlo de la siguiente manera:
letsencrypt['auto_renew_hour'] = "12"
letsencrypt['auto_renew_minute'] = "30"
letsencrypt['auto_renew_day_of_month'] = "*/7"
También puede desactivar la renovación automática añadiendo un ajuste adicional a /etc/gitlab/gitlab.rb
.
letsencrypt['auto_renew'] = false
Con las renovaciones automáticas configuradas, no tendrá que preocuparse por las interrupciones del servicio.
Ahora, debería tener una instancia de GitLab operativa alojada en su propio servidor. Puede comenzar a importar o crear nuevos proyectos y configurar el nivel apropiado de acceso para su equipo. GitLab añade nuevas funciones y realiza actualizaciones a su plataforma con regularidad, por lo tanto, asegúrese de visitar la página de inicio del proyecto para estar al día de cualquier mejora o aviso importante.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!