2016-08-07 2 views
0

У меня есть 4 сервера, один для балансировки нагрузки (обратный прокси Nginx) и 3 nodejs (восходящие серверы).Развертывание на несколько серверов одновременно

Я хочу развернуть код с bitbucket на эти 3 сервера одновременно, как я могу управлять им? Я могу установить jenkis на каждом из этих 3-х серверов и развернуть, но есть ли лучшее решение? Могу ли я установить jenkins на сервер балансировки нагрузки и развернуть его?

+0

Git теперь поддерживает толкая более одного репо, увидеть что-то вроде http://stackoverflow.com/questions/14290113/git-pushing-code-to-two-remotes – DavidN

+0

Вы можете использовать мастер-ведомый где вы нажимаете на мастер. Мастер запускает 3 задания slaves (каждый подчиненный на каждом сервере). – lvthillo

ответ

0

Вы должны написать сценарий, который сделает это за вас.
Скрипт может быть сценарием на любом языке, или вы можете использовать Jenkins для этого.

Вам не нужен Jenkins на каждом сервере, вам просто нужен скрипт git, который будет выталкивать его на ваши серверы или что ваши серверы будут извлекать изменения из сервера.

+0

Итак, я должен написать сценарий, который вытащит изменения из битбакет, чем запустить несколько команд (npm install и e.tc.) и поместить этот скрипт на каждый сервер и вызвать его вручную? я прав? Я хочу, чтобы ручное развертывание (не автоматизировано после изменений в битбакете) –

+0

Да, или вы можете сделать это с Дженкинсом, а также, как это сделать. – CodeWizard

0

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

$ cat .git/hooks/post-receive 
#!/bin/bash 

IFS=' ' 
while read local_ref local_sha remote_ref remote_sha 
do 

    echo "$remote_ref" | egrep '^refs\/heads\/[A-Z]+-[0-9]+$' >/dev/null && { 
    ref=`echo $remote_ref | sed -e 's/^refs\/heads\///'` 
    echo Forwarding feature branch to other repository: $ref 
    git push -q --force other_repos $ref 
    } 

done 
Смежные вопросы