如何捕获Fabric中的认证错误并重试?
我有两个用户名和对应的密码,用来管理我的服务器。有没有办法让我的fab脚本或模块先用第一个用户名和密码,如果失败了再用第二个,而不需要为每个主机或者一组主机维护一整套的凭证呢?
我在文档里没找到关于在run()或者类似的地方使用try/except的方法...
1 个回答
1
run
和其他命令会引发 SystemExit
from fabric.api import run,cd,put,sudo,settings
def do_stuff():
run('ls derp')
try:
with(settings(host_string='%s@localhost' % first_user,password = first_password)):
do_stuff()
except SystemExit:
with(settings(host_string='%s@localhost' % second_user,password = second_password)):
do_stuff()