CI / CD для нескольких клиентов - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть приложение Spring Boot под gitlab. Сегодня я использую Gitlab CI / CD и имею несколько шагов:

  1. Сборка приложения (создание jar)
  2. Тест
  3. Доставка в клиентской (01) машине верна папка.
  4. Запустите приложение, используя производственный профиль, используя Systemd в сентос 8. Этот профиль содержит определенные c конфигурации для клиентского производства. Важно : Gitlab runner работает под инфраструктурой клиента, потому что мы не можем получить доступ к вашей инфраструктуре через inte rnet.

Теперь у меня есть новый клиент (02), который должен использовать тот же код проекта, но в совершенно другой среде. Давайте рассмотрим некоторые трудности:

  1. Средство запуска gitlab работает только под клиентом 01
  2. Клиент 02 также не принимает доступ от inte rnet к вашей инфраструктуре, как клиент 01. Так что Я могу использовать один и тот же Gitlab Runner для обоих клиентов.
  3. У меня должно быть приложение. Свойства для каждого клиента, сегодня я просто разделил его профилями внутри кода.
  4. Клиент 02 использует centos6, поэтому у меня нет Systemd для запуска службы. Я должен использовать SysV. Итак, другой подход к запуску сервиса.

Я подумал об одном решении этого вопроса, но я хотел бы знать, существует ли что-то лучше, мне действительно нравится интерфейс Gitlab ci / cd.

Мое решение: установить Jenkins в каждой клиентской инфраструктуре и заставить ее прослушивать коммиты Gitlab. Каждый Jenkins, в каждом клиенте позаботится об установке и настройке приложения.

Чтобы решить проблему с application.properties, я создам репозиторий только для него, отделенный именем клиента. Итак, у меня будет что-то вроде этого: application-client01.properties и др. c. Дженкинс просто выберет правильные свойства, потому что будет установлен в клиентской среде.

Какое-нибудь лучшее решение?

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