Я использую версию capistrano 3.12 для развертывания моих приложений rails в различных средах, таких как dev, qa, sandbox.,
У меня есть требование, когда у меня есть два удаленных сервера для развертывания и эти серверы Использует одно общее монтирование / расположение в качестве каталога развертывания, скажем, / var / shared. Общий путь доступен с обоих серверов. В этом случае я развертываю свое приложение rails в общем / общем расположении этих серверов путем входа на любой из этих серверов. этого здесь достаточно, верно? И после развертывания моим последним шагом будет перезапуск службы на этих серверах один за другим. Допустим, я настроил свое приложение rails как службу systemd. Так что я сделаю «сервисный перезапуск».
Теперь перейдем к вопросу, в Капистрано у меня есть сомнения, как выбрать второй сервер для выполнения моей пользовательской задачи, где я буду выполнять только мою команду перезапуска.
У меня 2 роли: a. Web -> Первый сервер (с которого я буду осуществлять фактическое развертывание в общем расположении) b. App -> Второй сервер
В моем развертывании. rb, я установил фильтр для выбора только веб-роли, потому что я не хочу выполнять полное развертывание на обоих серверах. У меня есть пользовательская задача, где я выбрал свой второй сервер для выполнения команды.
Я вызываю пользовательскую задачу после некоторых задач, но она больше не выполняется.
deploy.rb
set :filter, :roles => %w{web}
----
---
after 'deploy:symlink:release', 'new_name`:check_app'
пользовательская задача:
namespace :new_name do
desc 'testing'
task :check_app do
on roles(:app) do
execute "echo hai >/tmp/hai"
end
end
end
I Хотите знать, почему задача не запускается и что я здесь делаю неправильно?
Заранее спасибо.