Давайте дружить в Телеграме: рассказываем про новые фичи, общаемся в комментах, прислушиваемся к вашим идеям Подписаться

Установка и использование GitLab Runner

Александр Бархатов
Александр Бархатов
Технический писатель
01 ноября 2023 г.
4680
5 минут чтения
Средний рейтинг статьи: 4.5

GitLab Runner — это веб-приложение (агент), предназначенное для запуска и автоматического выполнения процессов CI/CD в GitLab. GitLab Runner выполняет задачи из файла .gitlab-ci.yml, который располагается в корневой директории вашего проекта. 

Runner можно установить как на одном сервере, где установлен GitLab, так и отдельно. Главное, чтобы между GitLab Runner и сервером GitLab было сетевое взаимодействие. Установить Runner можно на такие ОС, как Linux, Windows, macOS, также поддерживается запуск в контейнере Docker. 

В данной статье мы установим GitLab Runner в Docker и запустим тестовый проект.

Предварительные требования

Для установки GitLab Runner необходимо следующее:

  • Сервер или виртуальная машина с предустановленной ОС Linux. Использовать можно любой дистрибутив, на который можно установить Docker.
  • Заранее установленный Docker.
  • Учетная запись на сайте gitlab.com, а также заранее подготовленный проект.

Установка GitLab Runner с помощью Docker

Переходим на сервер где установлен Docker. 

  1. Для начала создадим том Docker, в котором будет храниться конфигурация.

Том Docker представляет собой файловую систему для постоянного хранения информации. Данные в томе хранятся отдельно от контейнера. При перезапуске, остановке или удалении контейнера том и данные в нем останутся. Команда для создания тома с именем runner1:

docker volume create runner1

Image6

  1. Далее запускаем контейнер с образом gitlab-runner:
docker run -d --name gitlab-runner1 --restart always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v runner1:/etc/gitlab-runner \
    gitlab/gitlab-runner:latest

Image16

  1. Проверяем статус контейнера и убеждаемся, что он запущен (статус Up):
docker ps

Image10

На этом установка GitLab Runner закончена. Следующий этап — регистрация Runner.

Регистрация GitLab Runner

После того как Runner был установлен, его необходимо зарегистрировать. Без регистрации Runner не сможет выполнять задачи.

  1. Регистрация выполняется при помощи запуска контейнера gitlab-runner и выполнения в нем команды register:
docker run --rm -it -v runner1:/etc/gitlab-runner gitlab/gitlab-runner:latest register
  1. На первом шаге нас попросят ввести URL, на котором располагается сервер GitLab:

Image14

Если вы используете self hosted GitLab (который установлен на отдельном сервере), то необходимо использовать адрес вашего экземпляра GitLab. Например, если ваш проект располагается по адресу https://gitlab.test1.com/projects/testproject, то URL будет https://gitlab.test1.com.

Если же ваши проекты хранятся на GitLab.com, то URL — https://gitlab.com.

  1. Следующим шагом нас попросят ввести регистрационный токен:

Image12

Чтобы его получить, необходимо перейти в веб-интерфейс GitLab, выбрать нужный проект, слева выбрать раздел Settings, далее CI/CD:

Image4

Найти меню Runners, раскрыть раздел (Expand). Токен будет доступен в Action menu (кнопка с 3 точками):

Image9

  1. Далее нам предложат ввести описание для данного Runner. Пункт можно пропустить и ничего не писать:

Image3

  1. Далее необходимо задать тег(и). Теги — это метки, предназначенные для определения, какой именно раннер будет использоваться при запуске задач. Можно ввести более одного тега. В этом случае их необходимо разделить запятыми:

Image11

  1. На этапе ввода технической информации — maintenance note — можно задать информацию для других разработчиков, которая будет содержать, например, технические данные сервера. Можно ничего не писать и пропустить.

Image2

  1. Далее необходимо выбрать executor — среду, в которой будут запускаться pipeline. В качестве примера выберем docker. В этом случае pipeline будут запускаться в контейнерах Docker, а по завершению контейнеры будут удаляться. 

Image5

  1. На последнем шаге необходимо выбрать образ Docker, который будет использоваться в контейнере, где будет запускаться pipeline. В качестве примера выберем образ python 3.10-slim:

Image17

После того как регистрация Runner завершена, он будет отображен в настройках проекта, в разделе Runners:

Image7

Использование GitLab Runner при запуске pipeline

Для того чтобы использовать Runner для запуска pipeline, необходимо создать файл с именем .gitlab-ci.yml. Можно создать файл сразу в корневой директории проекта или в веб-интерфейсе GitLab — для этого на главной странице проекта необходимо нажать на кнопку Set up CI/CD (данная кнопка будет присутствовать только один раз — при первой настройке CI/CD):

Image1

Далее нажимаем на Configure pipeline:

Image8

При первой настройке pipeline, GitLab предоставляет базовый синтаксис pipeline. В нашем примере мы используем проект на Python, а именно скрипт для проверки скорости интернет-соединения. При успешном выполнение скрипта в выводе должны отображаться строки с входящим и исходящим соединением: 

Your Download speed is 95.8 Mbit/s
Your Upload speed is 110.1 Mbit/s

Синтаксис pipeline будет выглядеть следующим образом:

image: python:3.10-slim

default:
  tags:
    - test1

before_script:
    - pip3 install -r requirements.txt

run:
  script:
    - python3 check_internet_speed.py

Для того чтобы назначить ранее созданный Runner для данного проекта, необходимо прописать блок:

default:
  tags:
    - test1

В котором test1 — это тег нашего созданного Runner. Благодаря этому тегу, pipeline будет выполнен на том Runner, которому присвоен тег test1. Сохраняем изменения в файле (делаем commit) и запускаем наш pipeline. Если посмотреть процесс выполнения job, то в самом начале вывода можно увидеть, что используется gitlab runner:

Image13

Полный вывод всего pipeline изображен на скриншоте ниже:

Image15

В итоге мы установили GitLab Runner, настроили его а также назначили его на проект и запустили pipeline на этом Runner. 

Зарегистрируйтесь и начните пользоваться
сервисами Timeweb Cloud прямо сейчас

15 лет опыта
Сосредоточьтесь на своей работе: об остальном позаботимся мы
165 000 клиентов
Нам доверяют частные лица и компании, от небольших фирм до корпораций
Поддержка 24/7
100+ специалистов поддержки, готовых помочь в чате, тикете и по телефону