Развертывание GitLab Runner на виртуальной машине Compute Cloud
GitLab Runner.gitlab-ci.yml
. GitLab Runner можно развернуть не только в кластере Yandex Managed Service for Kubernetes, но и на виртуальной машине Compute Cloud — это проще и дешевле.
Для пользовательской (self-managed) инсталляции GitLab вы можете вручную установить GitLab Runner на виртуальную машину Compute Cloud.
Для Yandex Managed Service for GitLab вы также можете воспользоваться ручной установкой GitLab Runner или автоматически развернуть раннер в консоли управления
Примечание
Функциональность создания и управления раннерами с помощью консоли управления находится на стадии Preview. Чтобы запросить доступ, обратитесь в техническую поддержку
Чтобы начать работу с GitLab Runner с помощью Compute Cloud:
- Подготовьте инфраструктуру.
- Получите токен GitLab Runner.
- Разверните GitLab Runner.
- Создайте тестовый сценарий.
Если созданные ресурсы вам больше не нужны, удалите их.
Необходимые платные ресурсы
В стоимость поддержки инфраструктуры входит:
- Плата за диски и постоянно запущенные ВМ (см. тарифы Yandex Compute Cloud).
- Плата за использование публичного IP-адреса (см. тарифы Yandex Virtual Private 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
Вы можете воспользоваться ручной установкой GitLab Runner или автоматически развернуть раннер в консоли управления.
Установите GitLab Runner на виртуальную машину вручную
-
Создайте ВМ из публичного образа 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 в формате
Создайте раннер с помощью консоли управления
Примечание
Функциональность создания и управления раннерами с помощью консоли управления находится на стадии Preview. Чтобы запросить доступ, обратитесь в техническую поддержку
Создание раннеров с помощью консоли управления доступно только для инстансов Managed Service for GitLab.
-
Выберите инстанс Managed Service for GitLab, созданный ранее.
-
Выберите вкладку Раннеры.
-
Нажмите кнопку Создать раннер.
-
Задайте имя раннера:
- длина — от 2 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
Введите токен GitLab Runner, полученный ранее.
-
Выберите или создайте сервисный аккаунт. Он используется только для создания ВМ и не будет привязан к ней. У сервисного аккаунта должны быть роли
compute.admin
,vpc.admin
иiam.serviceAccounts.user
. -
(Опционально) Добавьте метки для раннера.
-
В блоке Настройки масштабирования укажите:
- Минимум воркеров — число воркеров, которые всегда запущены и готовы выполнять задачи. Значение по умолчанию —
1
, минимальное —0
, максимальное —10
. - Максимум воркеров — максимальное число воркеров, которые могут быть созданы для выполнения задач. Значение по умолчанию —
3
, минимальное —1
, максимальное —30
. Максимальное количество воркеров не может быть меньше минимального. - Лимит простоя воркера, в минутах — максимальное время простоя, по истечении которого дополнительно созданный воркер будет удален. Значение по умолчанию —
10
, минимальное —0
. - Максимум задач на воркер — максимальное количество задач, после выполнения которых воркер будет удален. Значение по умолчанию —
100
, минимальное —0
. - Количество параллельных задач на воркер — количество задач, которые выполняются на одном воркере одновременно. Значение по умолчанию —
1
, минимальное —0
.
Примечание
Воркеры — это виртуальные машины Compute Cloud. Их использование оплачивается согласно правилам тарификации Compute Cloud.
- Минимум воркеров — число воркеров, которые всегда запущены и готовы выполнять задачи. Значение по умолчанию —
-
(Опционально) Добавьте метки для воркера.
-
В блоке Вычислительные ресурсы выберите конфигурацию вычислительных ресурсов.
-
В блоке Диски и файловые хранилища настройте загрузочный диск:
- Выберите тип диска.
- Задайте размер диска.
-
Нажмите кнопку Создать.
-
Убедитесь, что раннер работает:
-
В 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
.
Удалите созданные ресурсы
Некоторые ресурсы платные. Удалите ресурсы, которые вы больше не будете использовать, чтобы не платить за них: