Основные серверы в Капистрано - PullRequest
2 голосов
/ 07 января 2009

У меня есть задача в capistrano, где я хочу, чтобы только одна строка работала, только если сервер помечен как основной. Есть ли переменная или метод, на который я могу ссылаться внутри задачи? «Первичное? или «основной» не работает.

Я также пробовал что-то похожее на следующее:

after "deploy", "task1"
after "deploy", "task2"
after "deploy", "task3"

task :task1, :roles => :app do
  *code*
end

task :task2, :roles => :app, :only => {:primary => true} do
  *code for just primary server*
end

task :task3, :roles => :app do
  *more code*
end

Но даже это, похоже, не работает (все три задачи запускаются на каждом сервере).

Я работал над этим несколько раз, и мне не повезло с поисками. Мысли?

1 Ответ

3 голосов
/ 07 января 2009

Я решил проблему, но это было не красиво. Я обнаружил, что вам нужно использовать «primary => true» для каждой задачи. Глядя на код, кажется, что capistrano генерирует список серверов, на которых задача будет запущена до ее запуска.

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