Какова цель и функция «ролей» в рецепте капистрано? Когда я смотрю образцы рецептов, я часто вижу что-то вроде этого:
role :app, 'somedomain.com'
role :web, 'somedomain.com'
role :db, 'somedomain.com', :primary => true
Похоже, что роль - это сервер, на котором Capistrano выполняет команды. Если это так, то почему это должно называться «ролью», а не «хостом» или «сервером»?
В чем разница между ролями :app
и в приведенном выше примере :web
?
Что делает :primary => true
опция?
:only => { :primary => true }
я думаю ... или вместоrole
нее должна использоваться команда в вопросе:master => true
. Я считаю, что эти атрибуты имеют совершенно произвольную форму.Параметр ": primary => true" указывает, что сервер базы данных является основным сервером. Это важно, например, когда вы хотите использовать репликацию с MySQL. Это позволяет вам создать еще один зеркальный сервер базы данных, который можно использовать для автоматического переключения при отказе. Он также используется для принятия решения о том, на каком сервере базы данных следует выполнять миграции модели (поскольку эти изменения будут реплицированы на серверы аварийного переключения). Эта ссылка немного проясняет это: https://github.com/capistrano/capistrano/wiki/2.x-from-the-beginning#back-to-configuration
источник