Python fabric 如何发送密码和用户提示的是/否选项
我创建了一个包含多个主机的fabfile。
我正在自动化我的实验。当我运行命令“sudo adduser --ingroup hadoop hduser”时,它会询问以下信息。
- 新的Unix密码
- 确认密码
- 全名
- 房间、电话等
- 这些信息正确吗?是/否
我想在脚本中直接传递这些信息,而不想让用户输入。请问我该怎么做?
谢谢
Navaz
2 个回答
1
另一个选择是使用 fexpect
,这是一个 fabric 的扩展,可以让你对提示做出回应:
from ilogue.fexpect import expect, expecting, run
prompts = []
prompts += expect('What is your full name?','John Doe')
prompts += expect('is this information Correct? Y/N','Y')
with expecting(prompts):
sudo('adduser --ingroup hadoop hduser')
1
你为什么不直接用管道呢?
比如说,如果你想让程序自动接受某个操作,可以用“yes”这个命令,它会不停地输出“y”。
yes | rm *.txt
在你的情况下:
local('echo 'your_super_password\n' | sudo adduser --ingroup hadoop hduser')