Fabric + django异步提示输入sudo密码

时间:2012-05-03 21:36:08

标签: python ajax django sudo fabric

我正在使用Django和fabric中的部署工具。案例是在初始形式中放置一些参数(如主机名和用户名),然后让Django应用程序调用结构方法来完成剩下的工作并在Web浏览器中收集输出。

如果从操作系统到结构有密码提示(即运行sudo命令等),我想弹出单字段表单以输入密码(例如使用jQuery UI元素)。该人将填写用户提示的密码字段,并且Fabric将继续执行该操作。这种情况是否可以实施?我在想一些对浏览器的异步调用,但我不知道如何从另一方面完成。可能还有另一种方式。

如果您有任何建议,请与我们联系。谢谢!

2 个答案:

答案 0 :(得分:2)

是,捕获密码例外,而不是弹出表单,然后使用env.password = userpassword再次运行结构脚本

如果要继续捕获异常的位置,请保留一个知道已完成的内容的变量(即nlinesexecuted)并在捕获异常时保存它。重新运行脚本时使用逻辑继续您离开的位置。

答案 1 :(得分:1)

我想不出只有在需要时才能提供密码提示的方法......你可以在之前提示并根据需要对其进行缓存,然后后端可以访问。

要将sudo密码传递给fabric命令,可以使用sudo -S ...即

回显密码| sudo -S命令