我目前正試圖自動部署過程中,涉及3臺不同的機器:的Python面料:在具有不同的密碼不同主機上執行的功能,在同一個腳本
- 用戶A @玉簪,PWDA
- 用戶B @hostB,PWDB
- 用戶C @ hostC,pwdC
這是我想執行,使用Python的面料庫(到我新的)場景:
def deploy():
execute(taskA, hosts=[hostA])
execute(taskB, hosts=[hostB])
execute(taskC, hosts=[hostC])
我試圖設置變量env.passwords
這樣的:
env.passwords = {'[email protected]:22':pwdA, '[email protected]:22':pwdB, '[email protected]:22':pwdC}
但它使SSH連接掛。
我目前的解決方法是在每次調用execute
之前修改變量env.user
和env.password
(我也可以在taskA,taskB和taskC的開頭執行此操作)。我真的不覺得這是非常優雅的,完全不在Fabric的精神之中。
如果有人遇到過這種情況,在嘗試使用env.passwords
字典時發現他/她掛着SSH連接,我就是你的!當然,如果任何人已經設法做出更優雅的多主機密碼處理,我會很高興聽到任何提示。
你好,@ jq170727,謝謝你的回答,並且很抱歉我遲到的回覆! 當我們通過公鑰/私鑰對處理安全性時,我確認您的回答正常工作! 但是,在我的情況下,我必須堅持不安全的方式,目前無法控制這一點。然而,我找到了解決我的問題的方法,我將在上面的答案中描述 –