Capistrano菜谱中“角色”的目的和功能是什么?当我看示例食谱时,我经常看到这样的东西:
role :app, 'somedomain.com'
role :web, 'somedomain.com'
role :db, 'somedomain.com', :primary => true
因此,它看起来像一个角色基本上是一个服务器,Capistrano在其中执行命令。如果是这样的话,为什么它会被称为“角色”而不是“主机”或“服务器”?
在上面的示例中,:app
和:web
角色之间的区别是什么?
:primary => true
选项的作用是什么?
发布于 2009-07-20 19:28:58
角色允许您编写仅适用于特定服务器的capistrano任务。这实际上只适用于多服务器部署。默认角色"app“、"web”和"db“也在内部使用,因此它们的存在不是可选的(AFAIK)
在您提供的示例中,没有功能差异。
":primary => true“是一个允许在自定义任务中指定服务器的进一步粒度的属性。
以下是任务定义中角色指定的示例:
task :migrate, :roles => :db, :only => { :primary => true } do
# ...
end
有关更广泛的解释,请参阅capistrano网站@ https://github.com/capistrano/capistrano/wiki/2.x-DSL-Configuration-Roles-Role。
发布于 2013-08-15 18:02:57
":primary => true“选项表示数据库服务器是主服务器。例如,当您想要在MySQL中使用复制时,这一点很重要。它允许您创建另一个可用于自动故障转移的镜像数据库服务器。它还用于决定应该运行模型迁移的数据库服务器(因为这些更改将被复制到故障转移服务器)。这个链接进一步说明了这一点:https://github.com/capistrano/capistrano/wiki/2.x-from-the-beginning#back-to-configuration
https://stackoverflow.com/questions/1155218
复制相似问题