GitLab: Instalación y Configuración

Buenas a todo@s!!

Hace mucho que no escribía un post. Así que para redimirme y siguiendo un poco esta corriente de automatizaciones, DevOps, CI y demás, voy a dedicar este post a montar un Gitlab.
Para quien no conozca Gitlab, es un servicio parecido a GitHub pero que lo podemos montar y gestionar por nuestra cuenta. Por lo que si queremos gestionar nuestros proyectos privados (ya sean de la empresa o personales) es una muy buena manera de hacerlo. Además ofrece una infinidad de opciones para conectar con herramientas de terceros: Jenkins, Prometheus, Influxdb.

Como venimos haciendo en los anteriores posts, la forma de montarlo va a ser con docker-compose y traefik.

Como esto tampoco tiene mucho misterio, dejo el docker-compose.yml y lo explico un poco por si hubiera dudas. Los servicios que vamos a montar van a ser los siguientes:

Docker-Compose

Matizando un poco:

La conexión contra el email la hace contra uno personal por SSL. Gitlab tiene varios ejemplos de configuración de mail aquí.

Por defecto, utiliza el puerto 22 para SSH, pero como este puerto está utilizado por el propio servicio del host, se ha puesto en el 2222. Por lo que hay que indicárselo en la siguiente línea: gitlab_rails['gitlab_shell_ssh_port'] = '2222' y a continuación mapear el puerto del contenedor 22 al puerto 2222 del host:

Como en este caso vamos a utilizar un proxy web que es traefik, vamos a hacer que el contenedor escuche por http y que nginx pase las cabeceras adecuadas. Y así la conexión cifrada, la haremos desde el traefik

Despliegue

Como ya hemos visto en algún post anterior, para lanzar el docker-compose en modo background hay que lanzarlo del siguiente modo:

Tarda un poco en iniciar ya que carga varias cosas. Si se quiere ver que está haciendo:

Una vez iniciado nos podemos conectar mediante la URL que le hemos indicado y nos aparecerá la siguiente pantalla:

Aquí hay que poner la contraseña para el usuario root

Y nos autenticamos con el usuario root

Esto sería todo, ahora ya se podrían empezar a crear grupos, proyectos y conectarlo a los diferentes servicios que nos interesen.

Info interesante con todas las opciones de gitlab:

https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/files/gitlab-config-template/gitlab.rb.template

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *