Как запустить несколько gitlab-ci-runners?

Ну, очень простой вопрос, но я просто не нашел (хорошей) документации; вот так:

  • Могу ли я настроить/запустить несколько бегунов на одном сервере?
  • Что значит бегун? Это (всеобъемлющая) установка или процессы, с которых я начинаю, например. /opt/gitlab-runner/bin/runner?
  • По поводу /opt/gitlab-runner/bin/runner: есть ли смысл запускать несколько таких процессов? (Они не отображаются по отдельности на вкладке «Бегуны» в веб-просмотре gitlab-ci)

Спасибо.


person h2459jl    schedule 09.03.2015    source источник
comment
Если вы используете докер, нет необходимости запускать несколько бегунов на сервере. Просто установите параметр concurrent в config.   -  person Matthew    schedule 07.09.2016


Ответы (4)


  1. Да, вы можете настроить несколько бегунов. См. https://docs.gitlab.com/runner/ для получения дополнительной информации.
  2. Обычно вы настраиваете бегунов на другом поле, отличном от вашего основного экземпляра gitlab. По крайней мере, я так делаю. Omnibus GITLAB относится к основной системе, в которой ваши репозитории поддерживаются и доступны через веб-интерфейс. Бегуны — это изолированные процессы (воркеры), которые ждут отправки новых коммитов, а затем выполняют сборку.
  3. Хорошей практикой является установка нескольких бегунов, предназначенных для конкретной технологии. Например. специальный бегун для сборок JAVA, NodeJS, Python, Ruby или PHP. Если бегуны не отображаются в пользовательском интерфейсе, они неправильно зарегистрированы в вашем экземпляре. См. документацию в #1
person Marco van Neerbos    schedule 10.03.2016

Для всех, кто пытается запустить несколько gitlab-runners в Windows:

  • Загрузите/скопируйте gitlabrunner.exe в два разных места.
  • Зарегистрируйте их в отдельных папках.
  • Установите их и укажите разные имена для флага -n, например:
gitlab-runner-windows-amd64.exe install -n dockerbuilder
  • Запустите их, используя одинаковые имена с флагом -n.
person Klepto    schedule 13.02.2020
comment
Это устанавливает службу Windows под точным именем, которое вы предоставляете. Чтобы увидеть всех бегунов в диспетчере задач в одном месте, можно добавить ко всем именам префикс gitlab-runner-. - person Bernhard Döbler; 01.07.2020

У меня была установка, в которой мне нужен был ровно один бегун для двух разных заданий. Когда вы определяете параллелизм, он устанавливает параллелизм для всех бегунов на данной машине.

Если у вас есть два исполнителя (с разными ярлыками или настройками) и concurrent=2, это означает, что оба могут запускать 2 задания параллельно. Если concurrent=1, только один исполнитель будет запускать одно задание одновременно.

Решение найдено здесь: https://forum.gitlab.com/t/run-runners-in-parallel-on-the-same-server/9213/2 concurrent=2 и для каждого бегуна добавьте limit=1, чтобы иметь максимум 2 задания на сервере и ограничить каждого бегуна только одним заданием.

person Priit    schedule 13.09.2019

Вы можете запускать несколько экземпляров, но начиная с gitlab 12.2 с важной оговоркой: https://docs.gitlab.com/runner/faq/README.html#why-cant-i-run-more-than-one-instance-of-runner

Почему я не могу запустить более одного экземпляра Runner?

Вы можете, но не делитесь одним и тем же файлом config.toml.

Запуск нескольких экземпляров Runner с использованием одного и того же файла конфигурации может привести к неожиданному и трудно поддающемуся отладке поведению. В GitLab Runner 12.2 только один экземпляр Runner может одновременно использовать определенный файл config.toml.

person MateuszL    schedule 26.11.2019