Capistrano悬挂时提示SUDO密码到Ubuntu的一个箱子
问题描述:
我有一段capistrano部署食谱我已经使用一段时间来部署我的web应用程序,然后使用sudo命令重新启动apache/nginx。最近,当我尝试执行这些sudo命令时,cap deploy被挂起。我看到输出: “[sudo]密码为” 与我的服务器名称和远程登录,但这不是一个安全的登录提示。帽壳只是挂着等待更多输出,并且不允许我键入我的密码来完成远程sudo命令。Capistrano悬挂时提示SUDO密码到Ubuntu的一个箱子
有没有办法解决这个或体面的工作?我不想删除我的远程用户的sudo密码提示以获取Web重新启动命令。
答
这似乎也发生在连接到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"
答
其他建议可能是不错的,但我发现,一旦我更新到2.5.3 Capistrano的问题就走了。我必须确保停止运行O/S附带的默认工具版本。
+0
`我必须确保我停止运行我的O/S附带的默认版本的工具。我会停止使用那个不稳定的软件堆栈,并开始使用您的操作系统 – hek2mgl 2013-12-12 22:00:34
答
# prevent sudo prompting for password
set :sudo_prompt, ""
`sudo`现在已经过时,所以不是你应该做`运行 “#{}须藤根CHOWN:根的/etc/my.cnf”' – axsuul 2012-02-21 06:24:23
或者使用`invoke_command`例如`invoke_command“chown root:root /etc/my.cnf”,:via => run_method`。在哪里run_method定义sudo(或不是,取决于你的`set:use_sudo,true/false`) – 2012-09-19 08:15:26