【发布时间】:2016-06-08 19:20:54
【问题描述】:
使用以下代码,我无法让 Fabric 在登录时检测到密码过期提示。会话没有超时,并且 abort_on_prompts 参数似乎没有被触发。如何配置 Fabric 来检测这种状态?
from fabric.api import env, run, execute
from fabric import network
from fabric.context_managers import settings
def host_type():
with settings(abort_on_prompts=True):
print ("Using abort mode %(abort_on_prompts)s" % env)
result = run('uname -s')
return result
if __name__ == '__main__':
print ("Fabric v%(version)s" % env)
env.user = 'myuser'
env.password = 'user67user'
env.hosts = ['10.254.254.143']
host_types = execute(host_type)
执行此脚本会导致脚本挂起,如下所示:
Fabric v1.11.1.post1 [10.254.254.143] 执行任务'host_type' 使用中止模式 True [10.254.254.143] 运行:uname -s [10.254.254.143] 出:警告:您的密码已过期。 [10.254.254.143] out:您必须立即更改密码并重新登录! [10.254.254.143] out:更改 myuser 的密码。 [10.254.254.143] 出:(当前)UNIX 密码:【问题讨论】: