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

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

https://t.me/admguides

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

Далее запускаем контейнер с образом 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

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

docker ps

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


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

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

Регистрация выполняется при помощи запуска контейнера gitlab-runner и выполнения в нем команды register:

docker run --rm -it -v runner1:/etc/gitlab-runner gitlab/gitlab-runner:latest register

На первом шаге нас попросят ввести URL, на котором располагается сервер GitLab:

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

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

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

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

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

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

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

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

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

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

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


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

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

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

При первой настройке 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:

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

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


Источник


Report Page