Как развернуть приложение rails на нескольких комбинациях домен / пользователь / дб в Capistrano и Rails 3? - PullRequest
2 голосов
/ 09 февраля 2011

Это может звучать странно (или даже опасно), но я бы хотел развернуть одно приложение rails для нескольких доменов. Я создал одну CMS, которую поддерживаю для нескольких разных клиентов. Единственная разница между сайтами - это CSS-файлы, изображения, database.yml и файл config.yml. При развертывании я бы хотел обновить все их сайты сразу. Каждый домен использует разные имена пользователей и пароли, поэтому я не могу использовать одного пользователя, который обычно задан в файле deploy.rb. По сути, мне нужно запустить развертывание на разных наборах пользователей, доменов и баз данных.

Мои потребности отличаются от простого развертывания на нескольких промежуточных, тестовых или сбалансированных серверах. Каждый веб-сервер является уникальным и независимым рабочим сервером, работающим так, как если бы это было другое приложение rails.

Мне нужно сделать что-то вроде следующего в deploy.rb:

role :app, "www.cats.com", "www.dogs.com"
role :web, "www.cats.com", "www.dogs.com"
role :db, "www.cats.com", "www.dogs.com" # both need the same migrations

set :deploy_to  "/home/#{cats_user}/www.cats.com",  "/home/#{dogs_user}/www.dogs.com"

Возможно ли что-то подобное? В противном случае, хорошая альтернатива будет принята с благодарностью!

1 Ответ

2 голосов
/ 09 февраля 2011

Мы используем многоступенчатую опцию capistrano-ext, как описано в этой статье .

Пример в посте блога посвящен различным этапам выпуска (тестирование, приемка, производство), ноВы также можете использовать его для развертывания на разных серверах.И так как каждый этап имеет свой собственный файл конфигурации, вы можете легко изменять конфигурацию (config.yml / database.yml) для каждого этапа.

Если у вас есть дополнительные вопросы, просто задайте:)

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