Установка shell gitlab runner

Gitlab
Gitlab

В первую очередь разберемся что такое 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

Эта команда скачает скрипт установки и сразу выполнит его. Скрипт самостоятельно определит вашу систему, добавит нужные утилиты и репозитории для работы.

repositories script
run script

Далее устанавливаем сам 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)

В результате вы должны увидеть сообщение об успешной регистрации.

runner register succes
успешная регистрация gitlab-runner

Полезные материалы по теме:

4 уведомления

  1. Установка Gitlab в Docker - Sysadmin talks
  2. Настройка E-mail уведомлений Gitlab - Sysadmin talks
  3. Настройка работы Gitlab с registry без ssl - Sysadmin talks
  4. Установка gitlab-runner в kubernetes с помощью helm - Sysadmin talks

Отправить ответ

Ваш e-mail не будет опубликован.


*