В первую очередь разберемся что такое shell gitlab runner и зачем он нужен.
Gitlab-runner — это программа — агент, которая выполняет инструкции указанные в файлах .gitlab-ci.yml ваших репозиториев. Проще говоря — агент, который выполняет инструкции ваших pipeline, без которого вам не обойтись, если вы настраиваете ci\cd своего проекта, с помощью gitlab.
Gitlab-runner поддерживает много разных сред для выполнения, например docker, kubernetes, shell и т.д. Для этого он запускает помощника «executor» в котором уже выполняется сам пайплайн.
В нашем случае в роли executor будет shell системы.
Проще говоря мы установим гитлаб раннер, и настроим таким образом что бы он выполнял команды внутри системы так, как если бы вы делали это самостоятельно, руками, в консоли вашей машины.
Для установки gitlab-runner скачиваем и выполняем скрипт с помощью:
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
Эта команда скачает скрипт установки и сразу выполнит его. Скрипт самостоятельно определит вашу систему, добавит нужные утилиты и репозитории для работы.
Далее устанавливаем сам gitlab-runner:
sudo apt-get install gitlab-runner
Остается только зарегистрировать раннер:
gitlab-runner register
он по порядку предложит ввести вам:
- Enter the GitLab instance URL (for example, https://gitlab.com/): вводим URL вашего gitlab инстанса
- Enter the registration token: вводим токен ранера (получить можно в админке, или в группе\проекте в разделе ci\cd)
- Enter a description for the runner: Вводим произвольное описание, или оставляем пустым
- Enter tags for the runner (comma-separated): Вводим тег(и) для вашего ранера, нужны для запуска тегированных заданий и разделения ранеров по ролям. Можно оставить пустым и заполнить потом в интерфейсе самого gitlab
- Enter optional maintenance note for the runner: это поле в общем случае должно содержать информацию относящуюся к другим разработчикам управляющим этим ранером. Например характеристики системы (ЦПУ\ОЗУ\ОС). Но в большинстве случаев это поле никто не заполняет. Оставляем пустым.
- Enter an executor: docker+machine, kubernetes, custom, docker-ssh, shell, virtualbox, docker, parallels, ssh, docker-ssh+machine: вводим docker. Выбор способа выполнения вашего pipeline.
- docker+machine — Предназначен больше для облачных решений и ЦОД. Создает виртуальные машины, устанавливает на них docker, и настраивает docker клиент для дальнейшей работы
- kubernetes — использует для сборок кластер kubernetes, подключаясь к kubernetes API
- custom — как следует из названия — custom executor, нужен для работы со средами, которые гитлаб не поддерживает «нативно», например Подман
- docker-ssh — с версии 10 висит в deprecated, устарел и скоро будет выпилен
- shell — как из названия — выполняет все действия локально на машине, не подходит для использования gitlab-runner в docker контейнере. Бывает полезен в некоторых случаях, когда вам нужно внести изменения непосредственно в самой системе, или если у вас монолитное, не микросервисное, приложение.
- virtualbox — создает из образа или снапшота виртуальную машину в vitrualbox, подключается к ней по ssh и выполняет действия указанные в .gitlab-ci.yml. По завершении машина удаляется
- docker — Подключается к docker-engine машины и выполняет все действия в изолированных контейнерах, которые по окончании уничтожаются (наиболее удобный вариант)
- parallels — работает аналогично virtualbox, только в качестве виртуализации использует parallels
- ssh — не поддерживает сборочные кэши, выполняет сборки на удаленных машинах. Поддерживает только bash команды
- docker-ssh+machine — как и docker-ssh устарел и будет выпелен.
В итоге вы должны указать:
- URL вашего gitlab
- Токен для раннера
- описание ( например backend)
- тэг (например backend)
- описание для разработки (оставим пустым)
- executor (shell)
В результате вы должны увидеть сообщение об успешной регистрации.
Полезные материалы по теме:
- Установка и регистрация gitlab-runner в docker контейнере
- Установка Gitlab в Docker
- Обновление Gitlab развернутого в Docker
- Переменные Gitlab-Ci
- Настройка E-mail уведомлений Gitlab
Отправить ответ