卡皮斯特拉诺的"角色"究竟是什么?

Eth*_*han 85 ruby capistrano ruby-on-rails

Capistrano食谱中"角色"的目的和功能是什么?当我查看样本食谱时,我经常会看到这样的事情:

role :app, 'somedomain.com'
role :web, 'somedomain.com'
role :db,  'somedomain.com', :primary => true
Run Code Online (Sandbox Code Playgroud)

所以看起来角色基本上是Capistrano执行命令的服务器.如果是这种情况,那为什么它会被称为"角色"而不是"主机"或"服务器"?

在上面的例子中,角色:app:web角色之间有什么区别?

:primary => true选项有什么作用?

小智 66

角色允许您编写仅适用于某些服务器的capistrano任务.这实际上仅适用于多服务器部署."app","web"和"db"的默认角色也在内部使用,因此它们的存在不是可选的(AFAIK)

在您提供的示例中,没有功能差异.

":primary => true"是一个属性,允许在指定自定义任务中的服务器时进一步细化.

以下是任务定义中角色规范的示例:

task :migrate, :roles => :db, :only => { :primary => true } do
  # ...
end
Run Code Online (Sandbox Code Playgroud)

有关更广泛的解释,请参阅capistrano网站@ https://github.com/capistrano/capistrano/wiki/2.x-DSL-Configuration-Roles-Role.

  • 还要注意:你的行应该是`:only => {:primary => true}`我认为......或者问题中的`role`命令应该使用`:master => true`代替.我相信这些属性完全是自由形式的. (2认同)