Capistrano - выполнять действия, не связанные с развертыванием, на сервере без развертывания во время развертывания - PullRequest
0 голосов
/ 25 сентября 2018

Что я хочу сделать

У меня есть приложение Rails, которое задокументировано с использованием YARD .Когда я развертываю приложение Rails на его сервере приложений ( AS ) с помощью Capistrano, я хочу также загрузить сгенерированные YARD HTML-документы на «сервер документации» ( DS ) - пустошикомпьютер, на котором работает веб-сервер nginx;полностью отделенный от AS .

Проблема

Я могу довольно легко сделать это, используя простые строковые переменные в Capistrano.Что-то вроде:

set :doc_user, 'user'
set :doc_sever, 'my.server.com'

task :yard do
  run_locally do
    execute 'yardoc -q'
    command = "rsync -aqzP doc/ #{fetch(:doc_user)}@#{fetch(:doc_server)}:~/doc"
  end
end

Но я думал, что это не очень похоже на Capistrano, поэтому я хотел сделать это с серверами / ролями и правильным синтаксисом Capistrano.Я пробовал даже очень простую задачу, такую ​​как:

role :yard, %w{user@my.server.com}
server 'my.server.com', user: 'user', roles: %w{yard}

task :yard do
  on roles(:yard) do
    execute 'hostname; uptime'
  end
end

, но Capistrano, похоже, интерпретирует этот сервер как еще один AS для развертывания приложения.Прочитав буквально каждую страницу документации Capistrano , я все еще не понимаю, как выполнить простую задачу, подобную этой.

Чего мне не хватает?

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