Ответ
Регистрация GitLab Runner — это стандартная задача при настройке CI/CD пайплайнов. Вот пошаговый процесс, который я использую:
1. Установка GitLab Runner:
# Для Ubuntu/Debian
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
sudo apt-get install gitlab-runner
# Для RHEL/CentOS/Fedora
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh" | sudo bash
sudo yum install gitlab-runner
2. Регистрация Runner:
sudo gitlab-runner register
Во время интерактивной регистрации нужно указать:
- URL GitLab instance:
https://gitlab.com(для SaaS) или адрес вашего self-hosted GitLab. - Registration token: Находится в
Settings -> CI/CD -> Runnersв разделе "Set up a specific Runner manually". Для групповых или проектных раннеров токены находятся в соответствующих разделах. - Description: Например,
docker-runner-for-backend. - Tags (опционально): Теги для выбора раннера в
.gitlab-ci.yml, напримерdocker, linux, x86. - Executor: Выбираю в зависимости от среды:
docker— для изоляции в контейнерах (использую чаще всего).kubernetes— для запуска в K8s кластере.shell— для прямого выполнения на хосте.
3. Пример конфигурации для Docker executor (/etc/gitlab-runner/config.toml):
concurrent = 4
check_interval = 0
[[runners]]
name = "production-docker-runner"
url = "https://gitlab.com"
token = "glrt-xxxxxxxxxxxxxxxx"
executor = "docker"
[runners.docker]
tls_verify = false
image = "alpine:latest"
privileged = false
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache", "/var/run/docker.sock:/var/run/docker.sock"]
shm_size = 0
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
4. Практический пример из production: Для регистрации раннера в Kubernetes кластере использовал Helm chart:
helm upgrade --install gitlab-runner gitlab/gitlab-runner
--namespace gitlab-runner
--set "gitlabUrl=https://gitlab.example.com"
--set "runnerRegistrationToken=GR1348941nBhuynDxmJCMttrsTox"
--set "rbac.create=true"
--set "runners.tags=kubernetes,production"
После регистрации раннер появляется в интерфейсе GitLab и готов выполнять jobs. В .gitlab-ci.yml можно указать теги для выбора конкретного раннера:
build:
stage: build
tags:
- docker
- linux
script:
- docker build -t app:latest .