如何在capistrano任务中获取当前角色名称

时间:2015-11-20 13:57:48

标签: ruby-on-rails task capistrano

我有以下代码:

task :back_up, :roles => [:server1, :server2] do

我想知道正在执行任务的角色名称server1server2。我需要这个来生成基于服务器的动态字符串 端

这可能吗?

1 个答案:

答案 0 :(得分:1)

on roles块采用可选参数host,而host知道为其分配了哪些角色。

示例:

task :some_task do
  on roles(:all) do |host|
    puts host.roles.to_a
  end
end

hostCapistrano::Configuration::Server的一个实例,您可以检查它是否与某些特定角色相关:host.has_role?(:db)