LINUX.ORG.RU

Запуск gitlab-runner на нескольких серверах

 


0

1

Ребят подскажите, не как не могу найти ответа.

Есть СЕРВЕР1 и СЕРВЕР2 с Ubuntu и gitlab-runner-ом на борту. Эти два runner-а зарегистрированны в репозитории с тэгом staging. Ну и вот, делаю я commit в ветку репозитория и начинает работать runner с СЕРВЕРА1. А runner с СЕРВЕРА2 почему то не чего не делает. (Су..а такая). Хотя в шаге точно указанно что нужно выполнять задания на runner-ах с тэгом staging.

Для эксперимента я остановил службу gitlab-runner на СЕРВЕРЕ1 и только после этого runner с СЕРВЕРА2 запустил работу. Включил обратно runner на СЕРВЕРЕ1 и runner с СЕРВЕРА2 снова перестал работать.

Может кто с этим сталкивался? Как это победить?

Ответ на: комментарий от slovazap

Но вроде логика тэгов такова, что нужно выполнить задание на серверах с runner-ами у которых эти тэги есть. А тут получается что есть два runer-а с тэгом staging, а работает только один runner.

Может есть какой то рычажок, который крутик, который можно было бы подрегулировать, что бы заработали все runner-ы с одним и тем же тэгом?

Andrei_IW ()
Ответ на: комментарий от slovazap

Ааа… вот оно что!!! Вот какая логика. А есть какой то рычажок, который можно было бы подрегулировать, что бы сменить алгоритм работы runner-ов? Что бы заработали все runner-ы одновременно с одним и тем же тэгом?

Andrei_IW ()
Последнее исправление: Andrei_IW (всего исправлений: 1)
Ответ на: комментарий от mike666

Всё дело в том, что runner1 находится на СЕРВЕРЕ1, а runner2 находится на СЕРВЕРЕ2.

СЕРВЕР1 и СЕРВЕР2 можно сказать что почти одинаковы. И код надо раскатить и протестировать на обоих серверах.

Andrei_IW ()

гитлаб - дискриминирующая компания: https://www.wsj.com/articles/resignation-at-gitlab-highlights-concerns-over-corporate-espionage-11573686134

я понимаю, что тебе или всё равно, или что тебе сказали поставить, то ты и ставишь. но будет неплохо если ты будешь в курсе этой ситуации.

gitea - прекрасная альтернатива гитлабу.

anonymous ()
Ответ на: комментарий от mike666

Кстати да, идея использования шаблонов очень даже не чего. Штатная функция. Её ещё часто для куберов используют. Наверное потому что там как раз много ПОД-ов.

Надо будет попробовать запилить Job-ы на шаблонах.

Andrei_IW ()
Ответ на: комментарий от Andrei_IW

СЕРВЕР1 и СЕРВЕР2 можно сказать что почти одинаковы. И код надо раскатить и протестировать на обоих серверах.

А зачем тестировать одновременно на двух одинаковых серверах?

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

yetanother ★★ ()
Ответ на: комментарий от anonymous

Ха, ты бы глянул сначала кому ты это рассказываешь. Сходи на сайт этого чудилы-топикстартера и посмотри сколько он дерет за установку линукса с несчастных пользователей. А за винду в три раза меньше ценник. Что же это как не дискриминация?

anonymous ()
Ответ на: комментарий от anonymous

Кстати да, идея хорошая. Можно попробовать разным runer-ам дать разные тэги, а уже в Job-е перечислить эти тэги. Должно сработать. Спасибо большое за идею.

Ну а ежели это не прокатит, то всегда остаётся вариант с шаблонами.

Andrei_IW ()
Ответ на: комментарий от Andrei_IW

у тебя одна задача, она не будет выполняться на разных серверах.

Если ты хочешь прогнать один скрипт на разных серверах, значит тебе надо в пайплайне сделать два шага с разными тегами и протежить два разных сервера соответствующими тегами.

Например, мы так делаем чтобы прогнать тесты на разных архитектурах.

max_lapshin ★★★ ()
Ответ на: комментарий от max_lapshin

Тоже как вариант. Но я сначала хочу попробовать вариант с шаблонами. Там суть такая: пишется шаблон с deploy, шаблон с тестами ну и все нужные нам шаги. А потом отдельно перечисляются сервера, к которым эти шаблоны нужно применить.

Такой подход используется для CI/CD в Кубернетис. Если такой подход не получится, то да, надо будет дублировать код CI/CD для каждого сервера.

Andrei_IW ()
Ответ на: комментарий от Andrei_IW

И код надо раскатить и протестировать на обоих серверах

Тогда тебе не теги, а env+template нужны. Делаешь два енв, делаешь темлейт, делаешь с него две джобы

upcFrost ★★★★★ ()