Capistrano отлично работает для развертывания на одном сервере. Тем не менее, у меня есть несколько серверов API производства для моего веб-приложения. Когда я развертываю, мой код необходимо развернуть на каждый сервер API сразу. Указание каждого сервера вручную НЕ является решением, которое я ищу (например, я не хочу делать «cap api1 deploy; cap api2 deploy»).Как развернуть на несколько избыточных производственных серверов с «развертыванием крышки»?
Есть ли способ, используя Capistrano, для развертывания на всех серверах сразу с помощью простого «развертывания крышки»? Мне интересно, какие изменения мне нужно будет внести в типичный файл 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
Это может работать, но я чувствую, что это не то, что это расширение предназначено для ...
Я видел это, но они только указывают доменные имена. Как я уже сказал: мне нужно указать доменное имя И собственный путь на сервер. Я могу сделать «роль: libs», «private.capify.org», «mail.capify.org», но как я также укажу путь на сервер (и таким образом, который совместим с capistrano)? –
Теперь, когда вы повторили требование пользовательского пути, я немного растерялся. Я не использовал систему широко. –
Хорошо. Спасибо за попытку. –