您好,登錄后才能下訂單哦!
這篇文章主要介紹了python中SSH遠程登錄設(shè)備怎么實現(xiàn)的相關(guān)知識,內(nèi)容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇python中SSH遠程登錄設(shè)備怎么實現(xiàn)文章都會有所收獲,下面我們一起來看看吧。
python中支持SSH協(xié)議的模塊主要有Paramiko和netmiko兩種,本次實驗采用netmiko模塊。
netmikko模塊為python的第三方模塊,需要使用pip來下載安裝。(聯(lián)網(wǎng)的情況下)
下載完畢后,進入Python 3.10解釋器,如果import netmiko沒有報錯,則說明Netmiko安裝成功。
將ensp的LSW1與本地虛擬網(wǎng)卡loopback0進行橋接,模擬將自己的電腦橋接到以下拓撲網(wǎng)絡(luò)中。
通過netmiko模塊的SSH逐一登錄4臺交換機LSW2-LSW5,并依次為其配置STP,默認模式為MSTP。
完整代碼
from netmiko import ConnectHandler for i in range(20,24): SW={ 'device_type':'huawei', 'ip':'10.0.1.'+str(i), 'username':'python', 'password':'123456', } connect=ConnectHandler(**SW) print('\n'+'-----------------'+'成功登錄到交換機'+SW['ip']+'-----------------') config_commands=['stp mode stp','dis stp | include CIST Global Info'] output=connect.send_config_set(config_commands) print(output) connect.save_config()
1.從netmiko模塊導(dǎo)入它的鏈接庫函數(shù)ConnectHandler(),用于實現(xiàn)SSH登錄網(wǎng)絡(luò)設(shè)備。
from netmiko import ConnectHandler
2.創(chuàng)建一個字典SW,該字典包含'device_type'、'ip'、'username'、'password'四個必選值。'device_type'用于指定設(shè)備類型,這里我們用的是華為的設(shè)備,所以'device_type'為'huawei'。
for i in range(20,24): SW={ 'device_type':'huawei', 'ip':'10.0.1.'+str(i), 'username':'python', 'password':'123456', }
由于我們這里要登陸四臺設(shè)備,所以要用for循環(huán)。
3.調(diào)用ConnectHandler()函數(shù),借用for循環(huán),對字典SW進行SSH連接,將他賦值給變量connect,注意SW2前面的**作為標識。
connect=ConnectHandler(**SW)
在Python的在形參前加'*'和'**'表示動態(tài)形參
在形參前加'*'表示可以接受多個實參值存進數(shù)組
對于在形參前加'**'表示表示接受參數(shù)轉(zhuǎn)化為字典類型
4.如果SSH登錄成功,則提示成功登錄
print('\n'+'-----------------'+'成功登錄到交換機'+SW['ip']+'-----------------')
5.創(chuàng)建一個名為config_commands的列表為參數(shù),其元素為需要在交換機上執(zhí)行的命令。
config_commands=['stp mode stp','dis stp | include CIST Global Info']
6.然后以剛剛創(chuàng)建的config_commands的列表為參數(shù),調(diào)用ConnectHandler()的send_config_set()函數(shù)來使用上述命令對SW做配置,并將配置過程打印出來。
output=connect.send_config_set(config_commands) print(output)
7.最后用save_config()保存設(shè)備配置
connect.save_config()
實驗結(jié)果
從以上結(jié)果可知,netmiko額外替我們輸入了:system view和return。
如果有大量的交換機其管理ip地址也沒什么規(guī)律性,此時直接用for循環(huán)管理ip地址來登錄設(shè)備,就不再那么靈活和使用了。此時我們可以把所有交換機的ip地址都放入都放入一個文件名為ip_list的文件,通過for循環(huán)readlines()來讀取文件中的每行ip地址,來逐臺登錄設(shè)備。
完整腳本
from netmiko import ConnectHandler with open('ip_list.txt') as f: for line in f.readlines(): host=line.strip() SW={ 'device_type':'huawei', 'ip':host, #host是變量,不要粗心加了引號 'username':'python', 'password':'123456', } connect=ConnectHandler(**SW) print('\n'+'-----------------'+'成功登錄到交換機'+SW['ip']+'-----------------') config_commands=['stp mode stp','dis stp | include CIST Global Info'] output=connect.send_config_set(config_commands) print(output) connect.save_config()
注意:ip_list要和python腳本在一個文件夾。
結(jié)果
關(guān)于“python中SSH遠程登錄設(shè)備怎么實現(xiàn)”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“python中SSH遠程登錄設(shè)備怎么實現(xiàn)”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。