Python netmiko模塊的使用
一、簡介
此模塊用于簡化paramiko與網(wǎng)絡(luò)設(shè)備之間的ssh連接,可在windows與Unix平臺使用
二、目前支持的設(shè)備
(2019.03.07)
Regularly tested Arista vEOS Cisco ASA Cisco IOS Cisco IOS-XE Cisco IOS-XR Cisco NX-OS Cisco SG300 HP Comware7 HP ProCurve Juniper Junos Linux Limited testing Alcatel AOS6/AOS8 Apresia Systems AEOS Calix B6 Cisco AireOS (Wireless LAN Controllers) Dell OS9 (Force10) Dell OS10 Dell PowerConnect Extreme ERS (Avaya) Extreme VSP (Avaya) Extreme VDX (Brocade) Extreme MLX/NetIron (Brocade/Foundry) Huawei IP Infusion OcNOS Mellanox NetApp cDOT OneAccess Palo Alto PAN-OS Pluribus Ruckus ICX/FastIron Ubiquiti EdgeSwitch Vyatta VyOS Experimental A10 Accedian Aruba Ciena SAOS Citrix Netscaler Cisco Telepresence Check Point GAiA Coriant Dell OS6 Dell EMC Isilon Eltex Enterasys Extreme EXOS Extreme Wing Extreme SLX (Brocade) F5 TMSH F5 Linux Fortinet MRV Communications OptiSwitch Nokia/Alcatel SR-OS QuantaMesh Rad ETX
三、實驗環(huán)境
1.操作系統(tǒng):win10
2.python版本: python3.6.6
3.netmiko模塊版本:2.3.0
四、安裝netmiko模塊
#前提準(zhǔn)備模塊(安裝netmiko可自動下載依賴項): Paramiko >= 2.4.1 scp >= 0.10.0 pyyaml pyserial textfsm #安裝netmiko pip install netmiko
ps:沒有全部安裝前提模塊,在使用netmiko沒有報錯,說明運行代碼里沒有調(diào)用到而已,而不是不需要
五、簡單實例
5.1 執(zhí)行查看命令:show ip int brief
from netmiko import ConnectHandler
cisco = {
'device_type':'cisco_ios',
'host':'ip地址',
'username':'用戶名',
'password':'密碼'
}
net_connect = ConnectHandler(**cisco)
##或者
# net_connect = ConnectHandler(device_type='cisco_ios',host='IP地址',username='用戶名',password='密碼')
#找到目前所在視圖
current_view = net_connect.find_prompt()
print(current_view)
#執(zhí)行命令,返回結(jié)果為字符串,賦值給output
output = net_connect.send_command('show ip int brief')
print(output)
# #此為在windows里如果\n不能顯示回車,則進(jìn)行如下語句格式化
# o_list = output.split("\n")
# for line in o_list:
# print(line)
5.2 執(zhí)行配置命令:手動關(guān)閉接口G1/0/29
from netmiko import ConnectHandler
cisco = {
'device_type':'cisco_ios',
'host':'ip地址',
'username':'用戶名',
'password':'密碼'
}
net_connect = ConnectHandler(**cisco)
##或者
# net_connect = ConnectHandler(device_type='cisco_ios',host='IP地址',username='用戶名',password='密碼')
#要配置的命令
config_commands = ['interface GigabitEthernet1/0/29','shutdown']
#提交要配置的命令,input為提交的真實內(nèi)容
input = net_connect.send_config_set(config_commands)
#驗證shutdown是否執(zhí)行成功
output = net_connect.send_command('show run inter gi1/0/29')
print(output)
# #此為在windows里如果\n不能顯示回車,則進(jìn)行如下語句格式化
# o_list = output.split("\n")
# for line in o_list:
# print(line)
六、常用方法
- net_connect.send_command() # 向下發(fā)送命令,返回輸出(基于模式)
- net_connect.send_command_timing() # 沿通道發(fā)送命令,返回輸出(基于時序)
- net_connect.send_config_set() # 將配置命令發(fā)送到遠(yuǎn)程設(shè)備
- net_connect.send_config_from_file() # 發(fā)送從文件加載的配置命令
- net_connect.save_config() # 將running#config保存到startup#config
- net_connect.enable() # 輸入啟用模式
- net_connect.find_prompt() # 返回當(dāng)前路由器提示符
- net_connect.commit() # 在Juniper和IOS#XR上執(zhí)行提交操作
- net_connect.disconnect() # 關(guān)閉連接
- net_connect.write_channel() # 通道的低級寫入
- net_connect.read_channel() # 通道的低級寫入
七、參考文獻(xiàn)
1.https://pynet.twb-tech.com/blog/automation/netmiko.html
2.https://github.com/ktbyers/netmiko
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python刪除列表元素的三種方法(remove,pop,del)
這篇文章主要介紹了python刪除列表元素的三種方法(remove,pop,del),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
python?argparse的使用步驟(全網(wǎng)最全)
argparse是python的一個命令行參數(shù)解析包,在代碼需要頻繁修改參數(shù)時,方便使用,主要用法就是在命令行輸入自己想要修改的參數(shù),這篇文章主要介紹了python?argparse的使用步驟(全網(wǎng)最全),需要的朋友可以參考下2023-04-04
在Python運行時動態(tài)查看進(jìn)程內(nèi)部信息的方法
今天小編就為大家分享一篇在Python運行時動態(tài)查看進(jìn)程內(nèi)部信息的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02
python正則表達(dá)式查找和替換內(nèi)容的實例詳解
在本篇文章里小編給大家整理的是一篇關(guān)于python正則表達(dá)式查找和替換內(nèi)容的實例詳解內(nèi)容,有興趣的朋友們可以跟著學(xué)習(xí)參考下。2021-10-10
python使用正則表達(dá)式去除中文文本多余空格,保留英文之間空格方法詳解
這篇文章主要介紹了python使用正則表達(dá)式去除中文文本多余空格,保留英文之間空格方法詳解,需要的朋友可以參考下2020-02-02
Python集合魔法解鎖數(shù)據(jù)去重技巧應(yīng)用實例
這篇文章主要為大家介紹了Python集合魔法解鎖數(shù)據(jù)去重技巧應(yīng)用實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11

