Капистрано, похоже, не справляется с ролью должным образом - по крайней мере, как я их понял. Я не могу заставить следующий простой Capfile работать так, как задумано:
role :test1, "earzur@beta-app-01"
role :test2, "earzur@beta-app-02"
task :full_test, :roles => [:test1,:test2] do
log_test1
log_test2
end
task :log_test1, :roles => :test1 do
logger.info "TEST1 !!!"
run "echo `hostname`"
end
task :log_test2, :roles => :test2 do
logger.info "TEST2 !!!"
run "echo `hostname`"
end
Когда я пытаюсь выполнить с ограничением роли, используя ROLES =: test1, log_test2 все еще выполняется на том же хосте, который не объявлен как часть роли: test2! Это ожидаемое поведение Капистрано? Если это ожидается, есть ли способ предотвратить это?
ROLES=test1 cap full_test
* executing `full_test'
* executing `log_test1'
** TEST1 !!!
* executing "echo `hostname`"
servers: ["beta-app-01"]
[earzur@beta-app-01] executing command
** [out :: earzur@beta-app-01] ec2-*****.compute-1.amazonaws.com
command finished in 350ms
* executing `log_test2' <<<< shouldn't that be filtered ? because of :roles => :test2 ?
** TEST2 !!!
* executing "echo `hostname`"
servers: ["beta-app-01"]
[earzur@beta-app-01] executing command
** [out :: earzur@beta-app-01] ec2-*****.compute-1.amazonaws.com
command finished in 410ms
Заранее спасибо, соответствующие записи (/642679/sozdanie-zadachi-capistrano-kotoraya-vypolnyaet-razlichnye-zadachi-v-zavisimosti-ot-roli) я не могу найти, кажется, не охватывают эту проблему ...