shell - 如何使用 Capistrano V3 运行需要 sudo 的命令?

标签 shell capistrano sudo

我希望能够在运行 cap setup 时运行 apt-get update,然后在我的所有服务器上安装一些新程序 (tmux) 以及 apt-get upgrade 但我正在摸索,因为显然缺乏关于 v3 上的 sudo 的文档.

sudo v3 发布页面上的问题让我很伤心。
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 的文档?

最佳答案

来自 this page ,看起来在 capistrano 3 中使用 sudo 的建议方法是设置无密码 sudo。

关于shell - 如何使用 Capistrano V3 运行需要 sudo 的命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18939784/

相关文章:

c++ - std::system() 无法正常工作

ruby-on-rails - 以不同用户身份运行 capistrano 任务

redis - 如何在重启前通过 capistrano 删除 sidekiq 特定的 redis 缓存

ruby-on-rails - Rake 因 Capistrano 部署而失败

python - 以 root 身份运行结构脚本

Bash -/etc/profile,登录时过多的只读变量消息

linux - bash 执行整个脚本,但如果任何中间作业失败则返回退出代码 > 0

python - 从标准输出获取时间戳后的行

linux - 将输出重定向为不同的用户

ubuntu - sudoers 是世界可写错误