Capistrano 3:从角色获取服务器信息

Til*_*ill 2 ruby rake capistrano capistrano3

是否可以在不使用 的情况下访问角色的hostname和,这样我就不必将任务嵌套在下面这么丑陋了?useron

task :foo do
    on roles(:web) do |host|
        run_locally do
            execute :rsync, '-avzr', "/foobar", "#{host.user}@#{host.hostname}:/foobar"
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

Til*_*ill 5

使用 Uri Agassi 建议使用解决each

task :foo do
    run_locally do
        roles(:web).each do |host|
            execute :rsync, '-avzr', "/foobar", "#{host.user}@#{host.hostname}:/foobar"
        end
    end
end
Run Code Online (Sandbox Code Playgroud)