在capistrano中,我可以设置:user
变量来确定在执行远程命令时哪个用户登录到ssh。但我想根据任务执行不同用户的命令。可能吗?像run "command", :as => "bob"
这样的东西会很好。
答案 0 :(得分:2)
文档:https://github.com/capistrano/capistrano/wiki/2.x-DSL-Action-Invocation-Run
您可以使用:shell
和&block
的组合:
run "echo am i bob ? :$USER:", :shell => "su - bob -s bash" do |channel, stream, data|
channel.send_data("#{bob_password}\n")
end