1
我有兩個用戶名和相應的密碼,我用來管理我的服務器,有沒有辦法讓我的fab腳本/模塊,使用一個,然後第二個,如果第一個失敗,無需保持完整列表每個主機甚至一組主機的憑證。如何捕捉Fabric中的auth錯誤並重試?
我看到文檔的DOA沒辦法嘗試/唯獨身邊的run()或類似的...
我有兩個用戶名和相應的密碼,我用來管理我的服務器,有沒有辦法讓我的fab腳本/模塊,使用一個,然後第二個,如果第一個失敗,無需保持完整列表每個主機甚至一組主機的憑證。如何捕捉Fabric中的auth錯誤並重試?
我看到文檔的DOA沒辦法嘗試/唯獨身邊的run()或類似的...
run
等命令提高SystemExit
from fabric.api import run,cd,put,sudo,settings
def do_stuff():
run('ls derp')
try:
with(settings(host_string='%[email protected]' % first_user,password = first_password)):
do_stuff()
except SystemExit:
with(settings(host_string='%[email protected]' % second_user,password = second_password)):
do_stuff()
謝謝,這是有益的。要做到這一點,我不得不將每個調用都包含在try/except塊中。 Fabric設置中是否有任何方法可以執行此操作或某個頂級目錄,與您可以如何設置'env.warn_only'類似? – jdotjdot 2014-06-02 00:51:11
jdotjdot,你應該只需要在嘗試/除了每個通話都打包,如果每個通話都需要嘗試兩個密碼,對吧? – robert 2014-06-24 17:14:16
這實際上不是我的問題;我有類似的東西,但不是這個用例。 – jdotjdot 2014-06-24 18:13:07