У меня есть задача в 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
Но даже это не работает (все три задачи выполняются на каждом сервере).
Я работаю над этим несколько дней, и мне не везет с моими поисками. Мысли?
Решение проблемы
Я решил проблему, но это было не красиво. Я обнаружил, что вам нужно использовать «primary => true» для каждой задачи. Глядя на код, кажется, что capistrano генерирует список серверов, на которых будет выполняться задача, до запуска задачи.
Комментариев нет:
Отправить комментарий