ruby - 卡皮斯特拉诺 3 : use server custom variable in task

标签 ruby capistrano capistrano3

我有多阶段多服务器设置,在我的任务中我需要使用服务器名称 例如在 stagin.rb 我有:

set :stage, :staging
# Define servers
server 'xxx.xx.xx.xxx', user: 'deploy', roles: %w{app}, name: 'app1'
server 'xxx.xx.xx.yyy', user: 'deploy', roles: %w{app}, name: 'app2'

我想在我的任务中使用那个“名称”变量:

task :configure do
  on roles(:app), in: :parallel do
  # how do I get server name here?
  end
end

最佳答案

如果要返回主机名/IP,那么就是

task :configure do
  on roles(:app), in: :parallel do |server|
    p server.hostname # server hostname should be in here
  end
end

如果您想访问自定义属性,例如在这种特殊情况下的 :name,它们存储在 serverproperties 散列中> 配置对象:只需使用 server.properties.name 而不是 server.hostname

关于ruby - 卡皮斯特拉诺 3 : use server custom variable in task,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21233873/

相关文章:

mysql - 在 windows apache MySQL 的生产环境中部署 Rails 4

ruby-on-rails - ruby 中连接字段名称

ruby - 如何为突出显示 Ruby 代码的 CodeRay 语法选择不同的主题/样式?

ruby - 使用 capistrano 仅部署到一个角色/服务器

redis - 如何在重新启动之前通过 Capistrano 删除特定于 Redis 的应用程序缓存

php - capistrano-env 文件权限

ruby - 如何打印语法高亮的 Ruby 代码?

ruby-on-rails - 在我的 'production' 服务器上运行时, bundle 程序忽略 MySQL2 gem 的安装

bundle - 如何恢复我的 Rails 5 binstub?

ruby-on-rails - Capistrano 3 进程失败