Как запустить задачу для указания хоста c в capistrano3 - PullRequest
0 голосов
/ 02 апреля 2020

Я использую версию 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 Хотите знать, почему задача не запускается и что я здесь делаю неправильно?

Заранее спасибо.

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