Capistrano отлично работает для развертывания на одном сервере.Тем не менее, у меня есть несколько производственных API-серверов для моего веб-приложения.При развертывании мой код должен быть развернут на каждом сервере API одновременно.Указание каждого сервера вручную НЕ является решением, которое я ищу (например, я не хочу делать «развертывание cap api1; развертывание cap api2»).
Есть ли способ, используя Capistrano, развернуть на всехсерверы сразу, просто с помощью "cap развертывания"?Мне интересно, какие изменения мне нужно было бы внести в типичный файл deploy.rb, нужно ли мне создавать отдельный файл для каждого сервера, и нужно ли и как менять файл Capfile.Кроме того, мне нужно иметь возможность указать разные пути deploy_to для каждого сервера.И в идеале мне не пришлось бы повторять вещи в разных конфигурационных файлах для разных серверов (например, не нужно было бы указывать: хранилище, приложение и т. Д. Несколько раз).
Я потратил часы на поискGoogle на это и просматривая учебники, но я не нашел ничего полезного.
Вот фрагмент из моего текущего файла deploy.rb:
set :application, "testapplication"
set :repository, "ssh://domain.com//srv/hg/#{application}"
set :scm, :mercurial
set :deploy_to, "/srv/www/#{application}"
role :web, "domain.com"
role :app, "domain.com"
role :db, "domain.com", :primary => true, :norelease => true
Должен ли я просто использовать многоступенчатое расширение исделать это?
task :deploy_everything do
system "cap api1 deploy"
system "cap api2 deploy"
system "cap api2 deploy"
end
Это может сработать, но я чувствую, что это не то, для чего предназначено это расширение ...