我创建了一个包含多个主机的fabfile。
我正在自动化我的实验。当我运行命令“sudo adduser --ingroup hadoop hduser”时,它将要求以下内容。
我想在不提示用户的情况下将所有这些信息作为脚本的一部分传递。我怎么能这样做?
由于
Navaz
答案 0 :(得分:1)
你为什么不用管道?
例如,对于自动自动接受,只需使用yes,它只输出一个无休止的y流。
yes | rm *.txt
在你的情况下:
local('echo 'your_super_password\n' | sudo adduser --ingroup hadoop hduser')
答案 1 :(得分:1)
另一种选择是使用fexpect
,这是一种结构扩展,可让您响应提示:
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')