当提示输入Ubuntu盒子的SUDO密码时,Capistrano挂起

时间:2009-01-10 23:03:05

标签: capistrano sudo

我有一个capistrano部署配方,我已经使用了一段时间来部署我的Web应用程序,然后使用sudo命令重启apache / nginx。最近,当我尝试执行这些sudo命令时,cap部署就会挂起。我看到输出: “[sudo]密码” 使用我的服务器名称和远程登录,但这不是安全的登录提示。 cap shell只是挂起等待更多输出,并且不允许我输入密码来完成远程sudo命令。

有没有办法解决这个或体面的工作?我不想删除远程用户的sudo密码提示以获取Web重启命令。

3 个答案:

答案 0 :(得分:32)

当连接到CentOS机器时似乎也会发生这种情况。在capistrano部署文件中添加以下行:

default_run_options[:pty] = true

另外,请确保使用sudo帮助程序,而不是直接在运行命令中执行sudo。例如:

# not
run "sudo chown root:root /etc/my.cnf"

# but
sudo "chown root:root /etc/my.cnf"

答案 1 :(得分:2)

其他建议可能合理,但我发现一旦我更新到Capistrano 2.5.3,问题就消失了。我必须确保停止运行O / S附带的默认工具版本。

答案 2 :(得分:2)

# prevent sudo prompting for password
set :sudo_prompt, ""