Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.
Предварительные требования
Для установки GitLab Runner необходимо следующее:
- Сервер или виртуальная машина с предустановленной ОС Linux. Использовать можно любой дистрибутив, на который можно установить Docker.
- Заранее установленный Docker.
- Учетная запись на сайте gitlab.com, а также заранее подготовленный проект.
Установка GitLab Runner с помощью Docker
Переходим на сервер где установлен Docker.
- Для начала создадим том 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):
После того как Runner был установлен, его необходимо зарегистрировать. Без регистрации Runner не сможет выполнять задачи.
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.
- Следующим шагом нас попросят ввести регистрационный токен:
Чтобы его получить, необходимо перейти в веб-интерфейс GitLab, выбрать нужный проект, слева выбрать раздел Settings , далее CI/CD :
Найти меню Runners, раскрыть раздел (Expand). Токен будет доступен в Action menu (кнопка с 3 точками):
-
Далее нам предложат ввести описание для данного Runner. Пункт можно пропустить и ничего не писать:
-
Далее необходимо задать тег(и). Теги — это метки, предназначенные для определения, какой именно раннер будет использоваться при запуске задач. Можно ввести более одного тега. В этом случае их необходимо разделить запятыми:
-
На этапе ввода технической информации — maintenance note — можно задать информацию для других разработчиков, которая будет содержать, например, технические данные сервера. Можно ничего не писать и пропустить.
-
Далее необходимо выбрать executor — среду, в которой будут запускаться pipeline. В качестве примера выберем
docker. В этом случае pipeline будут запускаться в контейнерах Docker, а по завершению контейнеры будут удаляться. -
На последнем шаге необходимо выбрать образ Docker, который будет использоваться в контейнере, где будет запускаться pipeline. В качестве примера выберем образ
python 3.10-slim:
Использование 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 для данного проекта, необходимо прописать блок:
В котором test1 — это тег нашего созданного Runner. Благодаря этому тегу, pipeline будет выполнен на том Runner, которому присвоен тег test1. Сохраняем изменения в файле (делаем commit) и запускаем наш pipeline. Если посмотреть процесс выполнения job, то в самом начале вывода можно увидеть, что используется gitlab runner:
Полный вывод всего pipeline изображен на скриншоте ниже:
В итоге мы установили GitLab Runner, настроили его а также назначили его на проект и запустили pipeline на этом Runner.
Нужен сервер для практики? Арендуйте VPS/VDS в России — root-доступ, NVMe, DDoS-защита и поддержка 24/7.