Привет, %username%! Простая шпаргалка о том, как быстро и просто установить Gitlab Runner на Ubuntu/Debian.

Добавляем репозиторий

Имеем в распоряжении сервер на Ubuntu:

[email protected]:~# lsb_release -a
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 18.04.4 LTS
Release:    18.04
Codename:    bionic
[email protected]:~#

Теперь добавляем репу:

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash

Установка

Установка последней версии выполняется просто:

sudo apt update
export GITLAB_RUNNER_DISABLE_SKEL=true; sudo -E apt-get install gitlab-runner

Установка конкретной версии:

sudo apt update
sudo apt-cache madison gitlab-runner
export GITLAB_RUNNER_DISABLE_SKEL=true; sudo -E apt-get install gitlab-runner=10.0.0

Регистрация

Для регистрации ранера необходимо получить токен в настройках репозитория (или группы репозиториев). Это делается в разделе Settings -> CI/CD -> Runners. А выглядит интересующий нас пункт примерно вот так:

Регистрационные данные в настройках репозитория

Теперь мы можем выполнить регистрацию ранера вот такой командой:

sudo gitlab-runner register
Runtime platform                                    arch=amd64 os=linux pid=8846 revision=8fa89735 version=13.6.0
Running in system-mode.
Enter the GitLab instance URL (for example, https://gitlab.com/):
https://gitlab.jtprog.ru/
Enter the registration token:
5oqXxxXXXXxX-UsP6ye_
Enter a description for the runner:
[runner]:
Enter tags for the runner (comma-separated):
jtprog,docker,blog
Registering runner... succeeded                     runner=3xxXxxXX
Enter an executor: docker-ssh, shell, ssh, virtualbox, docker-ssh+machine, kubernetes, custom, parallels, docker+machine, docker:
shell
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

Тут мы зарегистрировали самый простой вариант ранера с обычным шеллом (shell) в качестве исполнителя. Это нам позволит выполнять на ранере такого типа абсолютно все, что я могу выполнить руками в консоли.

Автоматизация

Для работы с gitlab-runner есть официальный модуль в Ansible, а так же есть вроде бы не плохая роль для установки gitlab-runner.

На это всё! Profit!