Развернуть только на одну роль / сервер с Capistrano - PullRequest
3 голосов
/ 20 января 2010

Я пытаюсь настроить несколько ролей, одну для живой, а другую для dev. Они выглядят так:

role :live, "example.com"
role :dev, "dev.example.com"

Однако когда я запускаю cap deploy, он выполняется для обоих серверов. Я пробовал следующее, и он всегда выполняется на обоих.

cap deploy live
cap ROLE=live deploy

Чего мне не хватает? Я знаю, что могу написать пользовательскую задачу, которая отвечает только на одну роль, но я не хочу писать целую кучу задач только для того, чтобы она отвечала той или иной роли. Спасибо!

Ответы [ 4 ]

13 голосов
/ 30 ноября 2012

Capistrano Multistage - это, безусловно, решение для примера, который вы опубликовали для развертывания в среде.Что касается вашего вопроса о развертывании на роли или серверы, Capistrano также предлагает решения для командной строки.

Для развертывания в одной роли (обратите внимание, что ROLES - множественное число):

cap ROLES=web deploy

Чтобы развернуть на несколько ролей:

cap ROLES=app,web deploy

Чтобы развернуть на конкретном сервере (обратите внимание, HOSTS является множественным):

cap HOSTS=web1.myserver.com deploy

Чтобы развернуть на нескольких серверах:

cap HOSTS=web1.myserver.com,web2.myserver.com deploy

Для развертывания на сервере (ах) с ролью (ами):

cap HOSTS=web1.myserver.com ROLES=db deploy
3 голосов
/ 21 июля 2010

Вы можете сделать что-то вроде этого:

task :dev do
    role :env, "dev.example.com"
end

task :prod do
    role :env, "example.com"
end

Тогда используйте:

cap dev deploy
cap prod deploy
2 голосов
/ 23 июня 2013

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

ROLES=web cap production deploy

или после среды

cap production ROLES=web deploy

Если вы укажете первый параметр, многоступенчатый будет рассматривать его как имя этапа и заменит его на значение по умолчанию:

cap ROLES=web production deploy

* [...] executing `dev'
* [...] executing `production'
1 голос
/ 20 января 2010

Попробуйте Capistrano многоступенчатый:

http://weblog.jamisbuck.org/2007/7/23/capistrano-multistage

Роли предназначены для развертывания различных сегментов на разных серверах, в отличие от развертывания всей платформы на одном наборе серверов.

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