python運維——自動化遠程連接項目

應用背景:
對於項目中有一些固定的繁瑣的操作步驟的地方,每次手動處理比較費時,通過自動化項目,把這些固定的步驟交由程序執行,可以節省我們的時間,提高效率。

自動化連接項目功能:
通過pexpect包模塊提供的方法,遠程連接到Linux主機,對上面的SClient客戶端做自動操作。
手動啓動SClient程序,需要一步步在界面輸入命令,去執行下一步,通過pexpect包可以將這些手動操作自動化執行

SClient客戶端的作用:
通過SClient連到不同地域的網絡(當然,這些網絡要通才行,如何ping通?服務器撥號,開通內網連外網的權限)


項目關鍵點:
1、項目放在linux環境上執行的,需要手動加入模塊包引入路徑
sys.path.append("/usr/local/PythonProject/Lib/site-packages"),append的路徑爲Linux上模塊包存放路徑,不加入,則在Linux操作界面裏會報“找不到模塊”錯誤。

2、連接Linux主機,需要通過ssh協議連接

3、主要方法及作用
Spawn(),生成遠程連接的對象,後續所有操作都通過該對象實現
Expect(),期望,我們想要從Linux機子上得到的信息,根據expect發送的期望信息,做下一步的操作。期望,可以包含多條信息,如果與Linux返回的信息有匹配,則執行匹配後的操作,期望的多條信息,一次只能匹配到其中一條
Sendline(),發送命令並自動換行,代替在Linux主機裏的手動輸入

項目優化點:
1、當前主機即爲要連接的Linux機子,是否還需要遠程連接操作?
需要,因爲所有的expect、sendline等方法都是基於一個遠程連接對象來的,沒有遠程連接對象,什麼操作都做不了
2、自動化選擇不夠靈活,只能輸入固定的操作命令

附:
Pexpect模塊包的使用,可參照《Python自動化運維_技術與最佳實踐》一書


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章