Развертывание GitLab Runner на виртуальной машине Yandex Compute Cloud
GitLab Runner.gitlab-ci.yml
. GitLab Runner можно развернуть не только в кластере Yandex Managed Service for Kubernetes, но и на виртуальной машине Compute Cloud — это проще и дешевле.
Сервис Compute Cloud предлагает два способа работы с GitLab Runner. Вы можете:
- Создать виртуальную машину и вручную установить на нее GitLab Runner.
- Создать с помощью консоли управления
раннер, который автоматически развернет указанное число виртуальных машин, готовых к выполнению задач.
Чтобы начать работу с GitLab Runner с помощью Compute Cloud:
- Подготовьте инфраструктуру.
- Получите токен GitLab Runner.
- Установите GitLab Runner на виртуальную машину Yandex Compute Cloud или создайте раннер с помощью консоли управления.
- Создайте тестовый сценарий.
Если созданные ресурсы вам больше не нужны, удалите их.
Подготовьте инфраструктуру
- Создайте и активируйте инстанс Managed Service for GitLab.
- Создайте проект GitLab
.
Получите токен GitLab Runner
-
Для настройки GitLab Runner для всего инстанса GitLab (требуются права администратора GitLab):
- Откройте GitLab.
- В левом нижнем углу нажмите кнопку Admin.
- В меню слева выберите CI/CD → Runners.
- Нажмите кнопку New instance runner и создайте новый GitLab Runner.
- Сохраните значение параметра
Runner authentication token
.
-
Для настройки GitLab Runner для проекта:
- Откройте GitLab.
- Выберите проект.
- В меню слева выберите Settings → CI/CD.
- В блоке Runners нажмите кнопку Expand.
- Нажмите кнопку New project runner и создайте новый GitLab Runner.
- Сохраните значение параметра
Runner authentication token
.
Установите GitLab Runner на виртуальную машину Yandex Compute Cloud
-
Создайте ВМ из публичного образа Ubuntu 22.04 LTS.
-
Подключитесь к ВМ по протоколу SSH:
ssh <логин>@<публичный_IP-адрес_ВМ>
-
Установите утилиты git и jq:
sudo apt-get --yes install git jq
-
Добавьте репозиторий с GitLab Runner в менеджер пакетов:
curl --location https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
-
Установите GitLab Runner:
sudo apt-get -y install gitlab-runner
-
Зарегистрируйте GitLab Runner:
sudo gitlab-runner register
Команда попросит ввести дополнительные данные:
- URL инстанса GitLab в формате
https://<домен>/
; - токен GitLab Runner, полученный ранее;
- описание GitLab Runner;
- теги GitLab Runner и настройки обновлений (
maintenance note
) — не указывайте; - исполнителя (
executor
) —shell
.
Результат:
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded! Configuration (with the authentication token) was saved in "/etc/gitlab-runner/config.toml"
- URL инстанса GitLab в формате
Создайте раннер с помощью консоли управления
-
Выберите инстанс Managed Service for GitLab, созданный ранее.
-
Выберите вкладку Раннеры.
-
Нажмите кнопку Создать раннер.
-
Задайте имя раннера:
- длина — от 2 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
Введите токен GitLab Runner, полученный ранее.
-
Выберите или создайте сервисный аккаунт. У сервисного аккаунта должны быть роли
compute.admin
,vpc.admin
иiam.serviceAccounts.user
. -
(Опционально) Добавьте метки для раннера.
-
В блоке Настройки масштабирования укажите:
- максимальное количество воркеров;
- минимальное количество воркеров;
- лимит простоя воркера (в минутах);
- максимум задач на воркер;
- количество параллельных задач на воркер.
-
(Опционально) Добавьте метки для воркера.
-
В блоке Вычислительные ресурсы выберите одну из готовых конфигураций.
-
В блоке Диски и файловые хранилища настройте загрузочный диск:
- Выберите тип диска.
- Задайте нужный размер диска.
-
Нажмите кнопку Создать ВМ.
-
Убедитесь, что раннер работает:
-
В GitLab:
-
Если вы создавали GitLab Runner для всего инстанса GitLab:
- В левом нижнем углу нажмите кнопку Admin.
- В меню слева выберите CI/CD → Runners.
- Проверьте, что созданный раннер появился в списке.
-
Если вы создавали GitLab Runner для проекта:
- Откройте проект.
- В меню слева выберите Settings → CI/CD.
- В блоке Runners нажмите кнопку Expand.
- Проверьте, что в блоке Assigned project runners появился созданный раннер.
-
-
В Compute Cloud — проверьте, что появились новые ВМ с префиксом
runner-
.
-
Создайте тестовый сценарий
-
Откройте проект GitLab.
-
В меню слева выберите раздел Build → Pipeline editor. Откроется страница с предложением добавить новый файл
.gitlab-ci.yml
, в котором в формате YAML нужно описать сценарий. -
Добавьте текст сценария:
build: stage: build script: - echo "Hello, $GITLAB_USER_LOGIN!" test: stage: test script: - echo "This job tests something" deploy: stage: deploy script: - echo "This job deploys something from the $CI_COMMIT_BRANCH branch." environment: production
-
Нажмите Commit changes.
-
В меню слева выберите раздел Build → Jobs.
-
Убедитесь, что три задачи имеют статус
Passed
.
Удалите созданные ресурсы
Некоторые ресурсы платные. Удалите ресурсы, которые вы больше не будете использовать, чтобы не платить за них: