如何使用Capistrano V3运行需要sudo权限的命令?

9
我希望能在运行cap setup时在所有服务器上运行apt-get更新并安装一些新程序(如tmux),同时进行apt-get升级,但是关于v3版本中sudo的缺乏文档使我感到困惑。
对于sudo的限制使我感到沮丧,可以从以下链接中了解到。 http://www.capistranorb.com/2013/06/01/release-announcement.html 例如,根据一些搜索结果,我认为sudo应该是这样工作的,但我会不断被要求输入密码。
desc "Check that we can access everything"
task :setup do
  on roles(:web) do
    uptime = capture(:uptime)
    info "Uptime: #{uptime}"
    sudo "apt-get update"
  end
end

当我在终端手动输入密码时,没有任何反应(没有错误,没有响应)。

与此相对应的响应似乎完全没有作用。

DEBUG [e47a40c6] Finished in 4.646 seconds command successful.
DEBUG [e47a40c6]         05:37:52 up 14:36,  3 users,  load average: 0.00, 0.01, 0.05
DEBUG [e47a40c6] Finished in 4.646 seconds command successful.
 INFO Uptime: 05:37:52 up 14:36,  3 users,  load average: 0.00, 0.01, 0.05
 INFO [d194a520] Running /usr/bin/env sudo apt-get update on 192.168.1.126
DEBUG [d194a520] Command: /usr/bin/env sudo apt-get update
DEBUG [d194a520]        [sudo] password for deploy:

另外,我有没有看到过任何已更新至v3的文档?


Capistrano v3 的文档目前在这里:http://capistranorb.com.s3-website-eu-west-1.amazonaws.com/。 - Thaeli
1个回答

12

这个页面看,使用capistrano 3建议的sudo方式是设置无密码sudo。


4
根据你的建议,我四处寻找并发现了这篇设置用户和特定命令无需密码sudo的绝妙指南:http://www.davidverhasselt.com/2008/01/27/passwordless-sudo/。我会保持这个问题的开放,几天后再看看是否有更好的想法或者有人指出我做错了什么。 - hak8or

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接