Python Fabric 捕捉交互式对话输出
Python Fabric capture interactive dialog output
我想使用 Fabric 为远程服务器上的用户设置密码。
假设我有一个名为 'john' 的用户,我想为他设置默认密码“123”。
理想情况下我想这样做:
run 'passwd john' on remote machine
detect when linux prompts for 'Enter new UNIX password:'
automatically enters the password
detect when linux prompts for 'Retype new UNIX password:'
automatically reenters the password
这是我试过的:
result = run('passwd {}'.format(username))
这个语句的问题是当Linux提示输入密码时'result'没有捕获。输入密码后才returns
有没有办法自动执行这样的交互式提示?
您可以使用 fexpect
进行交互式提示。
你可以使用prompts
password = '123'
with settings(prompts={
'Enter new UNIX password: ': password,
'Retype new UNIX password: ': password
}):
run('passwd {}'.format(username))
我想使用 Fabric 为远程服务器上的用户设置密码。
假设我有一个名为 'john' 的用户,我想为他设置默认密码“123”。
理想情况下我想这样做:
run 'passwd john' on remote machine
detect when linux prompts for 'Enter new UNIX password:'
automatically enters the password
detect when linux prompts for 'Retype new UNIX password:'
automatically reenters the password
这是我试过的:
result = run('passwd {}'.format(username))
这个语句的问题是当Linux提示输入密码时'result'没有捕获。输入密码后才returns
有没有办法自动执行这样的交互式提示?
您可以使用 fexpect
进行交互式提示。
你可以使用prompts
password = '123'
with settings(prompts={
'Enter new UNIX password: ': password,
'Retype new UNIX password: ': password
}):
run('passwd {}'.format(username))