2010-06-08 2 views
1

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 

Это может работать, но я чувствую, что это не то, что это расширение предназначено для ...

ответ

0

Похоже, вы можете быть заинтересованы в «нескольких серверах» заголовок на Getting Started page. Это то, что вам нужно?

+0

Я видел это, но они только указывают доменные имена. Как я уже сказал: мне нужно указать доменное имя И собственный путь на сервер. Я могу сделать «роль: libs», «private.capify.org», «mail.capify.org», но как я также укажу путь на сервер (и таким образом, который совместим с capistrano)? –

+0

Теперь, когда вы повторили требование пользовательского пути, я немного растерялся. Я не использовал систему широко. –

+0

Хорошо. Спасибо за попытку. –

Смежные вопросы