ruby-on-rails - 如何在 capistrano 任务中获取当前角色名称

标签 ruby-on-rails task capistrano

我有以下代码:

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

我想知道执行任务的角色名称 server1server2。我需要它来根据服务器生成动态字符串 结束

这可能吗?

最佳答案

on Roles block 采用可选参数 host,并且 host 知道分配给它的角色。

示例:

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

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

关于ruby-on-rails - 如何在 capistrano 任务中获取当前角色名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33828522/

相关文章:

ruby-on-rails - 如何处理与 "required"参数相关的路由?

ruby-on-rails - Heroku Bonsai 与 gem 'bonsai-elasticsearch-rails' 仍在寻找端口 9200

Capistrano - 查找当前部署的版本

ruby-on-rails - Passenger、Nginx 和 Capistrano - Passenger 根本不启动 Rails 应用程序

ruby-on-rails - Capistrano 3 在目录中执行

ruby-on-rails - Rspec/Capybara - 选择表单在测试时应触发 Onchange 事件

ruby-on-rails - 检测 Rails 版本插件兼容性的最佳实践?

gradle - 如何在 Gradle 中重用任务配置?

build - 在另一个项目中调用 gradle "build"任务

c# - 使用任务并行库(TPL)进行轮询