如何在 Capistrano 中切换远程用户

Posted

技术标签:

【中文标题】如何在 Capistrano 中切换远程用户【英文标题】:How to switch remote user in Capistrano 【发布时间】:2012-03-15 14:10:56 【问题描述】:

在 capistrano 中,我可以设置 :user 变量来确定在执行远程命令时哪个用户登录到 ssh。但我想根据任务以不同用户的身份执行命令。是否可以?像run "command", :as => "bob" 这样的东西会很好。

【问题讨论】:

【参考方案1】:

文档: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

【讨论】:

以上是关于如何在 Capistrano 中切换远程用户的主要内容,如果未能解决你的问题,请参考以下文章

使用 Rails 为 capistrano 3.8.0 运行“cap production deploy”时不知道如何构建任务“start”

Capistrano:我可以为整个 cap 会话设置一个环境变量吗?

如何在 Ubuntu 中使用 gem?

如何确定是不是在 Silverlight 应用程序中切换了 Caps Lock?

Capistrano & Bash:忽略命令退出状态

Capistrano:将本地mysql数据库同步到远程mysql数据库