Capistrano究竟是一个“angular色”呢?

Capistrano食谱中“angular色”的目的和作用是什么? 当我看样品食谱,我经常看到这样的事情:

role :app, 'somedomain.com' role :web, 'somedomain.com' role :db, 'somedomain.com', :primary => true 

所以看起来angular色基本上就是Capistrano执行命令的服务器 。 如果是这样的话,为什么它会被称为“angular色”,而不是“主机”或“服务器”?

在上面的例子中, :app:webangular色有什么区别?

: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