Регистрация Runner'а в сервисе GitLab
Для работы, Runner нужно связать с проектом в GitLab. Для этого заходим на страницу проекта и в меню слева выбираем - Settings -> CI/CD
:
Выбираем пункт Runners
:
Общие раннеры от GitLab нужно отключить, для того чтобы они не мешали и не забирали задачи у вашего раннера. Для этого под надписью Enable instance runners for this project
установите значение выключателя в положение выключено:
Необходимая вам информация находится в левой части окна, в разделе Project runners
. Тут вам надо узнать URL сервиса и токен авторизации, с которым вы будете регистрировать раннер:
Возвращаемся на сервер, где был установлен Runner
и выполним команду регистрации:
sudo gitlab-runner register
Вам будет предложено ввести несколько значений для настройки раннера:
- GitLab instance URL: URL вашего GitLab сервера, если используем общий значит https://gitlab.com/
- Registration token: токен для регистрации, который связывает Runner с конкретным проектом или группой
- Description: описание Runner'а, помогает идентифицировать его среди других Runner'ов
- Tags: теги для Runner'а, определяющие, для каких задач он может быть использован
- Optional maintenance note: примечание, которое может содержать информацию о техобслуживании или другие заметки о Runner'е
- Выбор исполнителя: выбераем исполнителя, который определяет среду, в которой будут выполняться задачи, самый простой вариант
Shell
Исполнители
- Использование: Подключается к удаленным серверам через SSH для выполнения задач.
- Цели применения: Идеально подходит для сценариев, когда у вас уже есть выделенные серверы для CI/CD, и вы хотите использовать их без установки дополнительного программного обеспечения.
- Использование: Запускает задачи в изолированных виртуальных машинах на macOS с использованием Parallels Desktop.
- Цели применения: Подходит для сборки и тестирования приложений iOS и macOS в среде macOS.
- Использование: Выполняет задачи в Docker контейнерах.
- Цели применения: Обеспечивает изоляцию и воспроизводимость среды, идеально подходит для большинства проектов CI/CD.
- Использование: Автоматически создает и удаляет виртуальные машины Docker с использованием Docker Machine. Это динамическое создание и удаление помогает оптимизировать использование ресурсов.
- Цели применения: Подходит для эластичного масштабирования CI/CD пайплайнов.
- Использование: Запускает задачи в контейнерах внутри кластера Kubernetes.
- Цели применения: Идеально для проектов, использующих Kubernetes, позволяет легко масштабировать и управлять зависимостями.
- Использование: Запускает задачи в виртуальных машинах VirtualBox.
- Цели применения: Подходит для сценариев, требующих полной виртуализации для тестирования в различных средах.
- Использование: Позволяет определить собственную логику запуска задач с использованием пользовательского скрипта.
- Цели применения: Для сложных сценариев и окружений, которые не поддерживаются другими исполнителями напрямую.
- Использование: Выполняет задачи непосредственно на машине, где запущен Runner.
- Цели применения: Простая настройка для небольших проектов или когда не требуется изоляция среды.
- Использование: Аналогично Docker, но для Windows контейнеров.
- Цели применения: Для сборки и тестирования приложений, специфичных для Windows.
- Использование: Автоматически масштабирует количество Runner'ов в зависимости от нагрузки, используя Docker.
- Цели применения: Для проектов с переменной нагрузкой, где требуется оптимизация ресурсов.
- Использование: Похож на Shell, но с дополнительными возможностями безопасности и изоляции.
- Цели применения: Для сред, требующих повышенной безопасности или изоляции.
Для того чтобы убедиться, что всё настроено и работает нормально выполните такую команду:
sudo gitlab-runner verify
Она должна показать сообщение is_alive
. Ваш Runner будет зарегистрирован в GitLab и готов к использованию. Теперь вы можете настроить ваш .gitlab-ci.yml файл в проектах, чтобы использовать этот Runner для выполнения задач CI/CD.
Настройка GitLab Runner
После того как раннер был зарегистрирован, обновите страницу настроек CI на GitLab. Новый раннер должен появиться в списке и кружок возле него должен быть зелёным:
Кликните по значку карандаша возле раннера и выставьте такие настройки, все остальные опции можно не трогать:
- Active: должно быть включено, иначе раннер не сможет выполнять задания
- Protected: должно быть выключено, для того чтобы раннер брал задания из всех веток, а не только защищённых
- Run untagged jobs: должно быть включено, позволяет раннеру брать задачи без тегов
- Lock to current projects: если включено, этот раннер доступен только для этого проекта