Капистрано, смени домакина в задачата

Имам следния проблем:

Трябва да напиша capistrano задача, която ще изпълни някои команди на test_server_1 и след това ще превключи на test_server_2 за друг набор от команди.

Разбрах, че мога да направя нещо като:

task :test_task_for_test_server_1, roles: :test do
  run 'command 1'
  test_server_2
  run 'command 2'
end

команда 1 ще бъде изпълнена на test_server_1, а команда 2 ще бъде изпълнена и на двата сървъра. Трябва да затворя сесията на test_server_1 и да изпълня втората команда само на test_server_2. Някакви идеи дали е възможно?


person mingle    schedule 15.05.2013    source източник
comment
Бих ги поставил в отделни задачи и роли и бих направил after :test_for_test_server_1, :test_for_test_server_2 (но с по-смислени имена.)   -  person Shawn Balestracci    schedule 15.05.2013
comment
те споделят променлива, име на файл, което се генерира в задачата   -  person mingle    schedule 15.05.2013
comment
можете ли да го извлечете в отделен метод?   -  person Shawn Balestracci    schedule 15.05.2013
comment
да, но не знам дали това решава проблема. Първата задача е да направите резервно копие, второ възстановяване. Името на файла е комбинация от име на сървър и времеви печат. Възможно ли е да се извика capistrano задача с параметър от друга задача?   -  person mingle    schedule 15.05.2013
comment
Мисля, че можете просто да го запазите като променлива на екземпляр. def backup_filename @backup_filename ||= server + timestanp; end Тогава можете да извикате този метод и от двете задачи.   -  person Shawn Balestracci    schedule 15.05.2013


Отговори (1)


пробвахте ли това

task :test_task_for_test_server_1, roles: :test do
  run 'command 1', :server => :test_server_1
  run 'command 2', :server => :test_server_2
end
person Montells    schedule 26.02.2014