Capistrano究竟是一个“angular色”呢?
Capistrano食谱中“angular色”的目的和作用是什么? 当我看样品食谱,我经常看到这样的事情:
role :app, 'somedomain.com' role :web, 'somedomain.com' role :db, 'somedomain.com', :primary => true
所以看起来angular色基本上就是Capistrano执行命令的服务器 。 如果是这样的话,为什么它会被称为“angular色”,而不是“主机”或“服务器”?
在上面的例子中, :app
和:web
angular色有什么区别?
:primary => true
选项是做什么的?
angular色允许您编写仅适用于某些服务器的capistrano任务。 这实际上只适用于多服务器部署。 “app”,“web”和“db”的默认angular色也在内部使用,所以它们的存在不是可选的(AFAIK)
在您提供的样本中,没有function差异。
“:primary => true”是一个属性,允许在指定自定义任务中的服务器时进一步细化。
以下是任务定义中angular色规范的示例:
task :migrate, :roles => :db, :only => { :primary => true } do # ... end
请参阅capistrano网站@ https://github.com/capistrano/capistrano/wiki/2.x-DSL-Configuration-Roles-Role更广泛的解释。;
“:primary => true”选项表示数据库服务器是主服务器。 例如,这对于当您想使用MySQL复制时很重要。 它允许您创build另一个可用于自动故障转移的镜像数据库服务器。 它也用于决定运行模型迁移的数据库服务器(因为这些更改将被复制到故障转移服务器)。 这个链接澄清了一点: https : //github.com/capistrano/capistrano/wiki/2.x-from-the-beginning#back-to-configuration