Jenkins + Ansible для многоступенчатого применения - PullRequest
0 голосов
/ 11 мая 2019

Представьте, что у меня есть проект с двумя основными ветвями, master(production) и development. У меня есть один Jenkinsfile (одно конвейерное задание, запускаемое событием git push) с конвейерной логикой внутри. Из конвейера я вызываю playbook для создания и развертывания приложения на сервере.

Теперь возникла ситуация, я хочу развернуть приложение на двух серверах. Один основной сервер и один промежуточный (разрабатывающий) сервер. когда я помещаю изменения в основную ветку, я хочу, чтобы измененное приложение было развернуто на главном (производственном) сервере, но когда я помещаю изменения в ветку разработки, я хочу развернуть изменения на промежуточном (развивающемся) сервере.

Теперь у меня есть один Дженкинсфайл, одна книга игр и инвентарь. когда я нажимаю на главную ветку, изменения развертываются на главном сервере.

Но как мне управлять вышеуказанным сценарием для ветки разработки? я должен иметь два задания с двумя разными Jenkinsfile (вызывая разные playbook, которые будут развернуты на разных, промежуточных серверах) в каждой ветке? или я должен иметь оба Jenkinsfiles на обеих ветках? или, может быть, это даже не сработает, и мне нужна другая идея?

Я новичок в DevOps и тому подобное, и я был бы признателен, если бы кто-нибудь помог мне выйти из этой ситуации.

1 Ответ

1 голос
/ 12 мая 2019

То, что вы ищете, уже реализовано в плагине Multibranch Pipeline .Он в основном автоматически создает конвейер для каждой ветви, а затем позволяет различать, какая ветвь использовалась для запуска конвейера.Вы можете сохранить один Jenkinsfile и просто извлечь специфические различия для продукта / постановки и установить их, например, в переменных среды .

...