Gitlab como CI

Fcastillovilches
4 min readJan 23, 2021

--

Gitlab Runner es una instancia de compilación (En este caso un contenedor) que se utiliza para ejecutar cargas de trabajos ejecutadas por los repositorios de Gitlab. El Gitlab Runner se puede instalar en dispositivos de usuarios, servidores y máquinas locales.

Nota: Por defecto el Gitlab runner esta bloqueado solo para ser usado en el repositorio en el que fue creado.

Prerrequisitos

  • Docker
  • Cuenta de Gitlab

Manos a la obra

Primero configuramos un nuevo repositorio de Gitlab para la demostración. También puedes ingresar a uno existente dentro de tus repositorios.

runner-blog

Luego iremos a las configuraciones generales del repositorio, CI/CD y luego Runners .

runner-blog > Settings > CI / CD > Runners

Luego vamos a la lista de runner específicos. En el veremos los runner específicos disponibles para ser usado por nuestro repositorio.

Como vemos en la siguiente imagen, existe los pasos necesarios para la instalación de nuestro nuevo runner.

Ahora vamos a nuestra consola de Docker para la creación de nuestro nuevo runner, los comandos son los siguientes:

Comando docker volume create

El comando docker run crea un volumen de docker para ser presentado a nuestro contenedor (Persistente)

docker volume create gitlab-runner-config

Comando docker run

El comando docker run crea y arranca un contenedor para ejecutar unos comandos ya establecidos en el Dockerfile o los que se pasen como un parámetro. De estos, sólo tiene un parámetro obligatorio que es el nombre de la imagen que usará para crear el contenedor.

docker run -d --name gitlab-runner --restart always -v /var/run/docker.sock:/var/run/docker.sock -v gitlab-runner-config:/etc/gitlab-runner gitlab/gitlab-runner:latest

Parámetros:

  • — name — Define el nombre del contenedor.
  • -v — Montaje de volumen a contenedor ([ruta local servidor]:[ruta contenedor] o [volumen de docker]:[ruta contenedor])
  • -d — Correr contenedor en segundo plano.
  • — restart always — Esta opción hará que el demonio Docker intentará reiniciar el contenedor de forma indefinida.

Comando docker ps

Permite visualizar que los contenedores que se encuentran corriendo en nuestro docker.

En este caso veremos el contenedor gitlab-runner corriendo en nuestro servidor, por lo que solo faltaría realizar la configuración necesaria para asociar nuestro runner con nuestra cuenta de Gitlab.

Para registrar y asociar nuestro nuevo Gitlab runner con nuestra cuenta de Gitlab, debemos ejecutar los siguientes Comandos:

Comando docker exec

El comando docker exec se utiliza para ejecutar comandos dentro del contenedor.

En este caso entraremos a nuestro contenedor a través de bash, con el fin de poder ejecutar comandos en nuestro Gitlab Runner.

docker exec -it gitlab-runner bash

Parametros:

  • -it — Este comando nos abre una terminal para poder interactuar con nuestro contenedor.
  • bash — Comandos a ejecutar, en este caso Bash

Con la ejecución de comando anterior deberíamos poder estar dentro de nuestro contenedor.

Luego ejecutaremos el comando gitlab-runner register, con el fin de asociar nuestra gitlab runner con la cuenta de Gitlab.

gitlab-runner register -n \
--url https://gitlab.com/ \
--registration-token \
--executor docker \
--description "My Docker Runner" \
--docker-image "alpine:latest" \
--docker-volumes /var/run/docker.sock:/var/run/docker.sock \
--tag-list docker-do

Parametros:

  • gitlab-runner register — Comando utilizado para registrar Gitlab Runner en una cuenta de Gitlab.
  • — url — Define la url de Gitlab, si es Gitlab.com la url deberá ser https://gitlab.com/ , en caso de que sea un Gitlab onpremise se debe configurar la url de tu Gitlab.
  • — token — token de registro de Gitlab Runner
  • — executor — Plataforma para la construcción de nuestros proyectos.
  • — description — Descripción de nuestro runner.
  • — docker-image — Imagen utilizada para nuestro runner.
  • — tag-list — Listas de tag para identificar mi runner. Múltiples tag separados por [,]

Una vez completado, nuestro Gitlab Runner debería estar conectado con nuestra cuenta de Gitlab.

Nota: Por defecto el gitlab runner vinculado queda habilitado para ser usado por el repositorio en el que se este trabajando.

Nota: Por defecto el gitlab runner esta bloqueado solo para ser usado en el repositorio en el que fue creado.

Originally published at http://www.facmin.cl.

--

--

No responses yet