Introducción

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.

Requisitos previos

Para este tutorial, necesitará lo siguiente:

Los requisitos de hardware publicados de GitLab recomiendan usar un servidor con lo siguiente:

  • 2 núcleos
  • 8 GB de RAM

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.

  • Un nombre de dominio que apunte a su servidor. Para obtener más información, consulte nuestra documentación sobre cómo comenzar a usar DNS en DigitalOcean. Este tutorial usará el nombre de dominio example.com.

Paso 1: instalación de las dependencias

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.

Paso 2: instalación de GitLab

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.

Paso 3: ajuste de las reglas del firewall

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
Output
Status: 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
Output
Status: 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.

Paso 4: edición del archivo de configuración de GitLab

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:

/etc/gitlab/gitlab.rb
##! 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:

/etc/gitlab/gitlab.rb
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.

Paso 5: configuración inicial a través de la interfaz web

Con GitLab ejecutándose y el acceso permitido, podemos realizar algunos ajustes iniciales de la aplicación a través de la interfaz web.

Iniciar sesión por primera vez

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:

Solicitud de establecimiento de una contraseña inicial de GitLab

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:

Solicitud de acceso inicial de GitLab

Aquí, puede iniciar sesión con la contraseña que acaba de configurar. Las credenciales son:

  • Nombre de usuario: root
  • Contraseña: la [contraseña que estableció]

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:

Página de destino de acceso inicial de GitLab

Ahora, puede realizar algunos cambios sencillos para configurar GitLab de la forma que desee.

Configurar los ajustes de su perfil

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:

Botón de ajustes del perfil de GitLab

Se lo dirigirá a la sección Perfil de sus ajustes:

Página de ajustes de perfil de GitLab

Cambie el nombre “Administrador” y la dirección de correo electrónicoadmin@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:

Botón Actualizar ajustes de perfil de GitLab

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.

Cambiar el nombre de su cuenta

A continuación, haga clic en el elemento Cuenta en la barra de menú izquierda:

Elemento del menú Cuenta de GitLab

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:

Sección de cambio de nombre de usuario de GitLab

Haga clic en el botón Actualizar nombre de usuario para realizar el cambio:

Botón Actualizar nombre de usuario de GitLab

La próxima vez que inicie sesión en GitLab, recuerde usar su nuevo nombre de usuario.

Añadir una clave SSH a su cuenta

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:

Output
ssh-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:

Output
cat: /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:

Output
Generating 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
Output
ssh-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:

Elemento del menú Claves SSH de GitLab

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:

Añadir clave SSH en GitLab

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.

Paso 6: restricción o desactivación de registros públicos (opcional)

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.

Botón del área administrativa de GitLab

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:

Botón de ajustes administrativos de GitLab

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.

Deshabilitar registros

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:

Anulación de la selección de registros habilitados en GitLab

Desplácese a la parte inferior y haga clic en el botón Guardar cambios:

Botón Guardar ajustes en GitLab

Ahora, la sección de registro no debería estar presente en la página de destino de GitLab.

Restringir registros por dominio

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:

Restricción de registros por dominio de GitLab

Desplácese a la parte inferior y haga clic en el botón Guardar cambios:

Botón Guardar ajustes en GitLab

Ahora, la sección de registro no debería estar presente en la página de destino de GitLab.

Restringir la creación de proyectos

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:

Establecer proyectos a cero en GitLab

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:

Botón Guardar ajustes en GitLab

Ahora, los nuevos usuarios podrán crear cuentas, pero no proyectos.

Renovar los certificados de Let´s Encrypt

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:

/etc/gitlab/gitlab.rb
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.

/etc/gitlab/gitlab.rb
letsencrypt['auto_renew'] = false

Con las renovaciones automáticas configuradas, no tendrá que preocuparse por las interrupciones del servicio.

Conclusión

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.

0 Comments

Creative Commons License