Python netmiko模块的使用
一、简介
此模块用于简化paramiko与网络设备之间的ssh连接,可在windows与Unix平台使用
二、目前支持的设备
(2019.03.07)
Regularlytested AristavEOS CiscoASA CiscoIOS CiscoIOS-XE CiscoIOS-XR CiscoNX-OS CiscoSG300 HPComware7 HPProCurve JuniperJunos Linux Limitedtesting AlcatelAOS6/AOS8 ApresiaSystemsAEOS CalixB6 CiscoAireOS(WirelessLANControllers) DellOS9(Force10) DellOS10 DellPowerConnect ExtremeERS(Avaya) ExtremeVSP(Avaya) ExtremeVDX(Brocade) ExtremeMLX/NetIron(Brocade/Foundry) Huawei IPInfusionOcNOS Mellanox NetAppcDOT OneAccess PaloAltoPAN-OS Pluribus RuckusICX/FastIron UbiquitiEdgeSwitch VyattaVyOS Experimental A10 Accedian Aruba CienaSAOS CitrixNetscaler CiscoTelepresence CheckPointGAiA Coriant DellOS6 DellEMCIsilon Eltex Enterasys ExtremeEXOS ExtremeWing ExtremeSLX(Brocade) F5TMSH F5Linux Fortinet MRVCommunicationsOptiSwitch Nokia/AlcatelSR-OS QuantaMesh RadETX
三、实验环境
1.操作系统:win10
2.python版本:python3.6.6
3.netmiko模块版本:2.3.0
四、安装netmiko模块
#前提准备模块(安装netmiko可自动下载依赖项): Paramiko>=2.4.1 scp>=0.10.0 pyyaml pyserial textfsm #安装netmiko pipinstallnetmiko
ps:没有全部安装前提模块,在使用netmiko没有报错,说明运行代码里没有调用到而已,而不是不需要
五、简单实例
5.1执行查看命令:showipintbrief
fromnetmikoimportConnectHandler 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) #执行命令,返回结果为字符串,赋值给output output=net_connect.send_command('showipintbrief') print(output) ##此为在windows里如果\n不能显示回车,则进行如下语句格式化 #o_list=output.split("\n") #forlineino_list: #print(line)
5.2执行配置命令:手动关闭接口G1/0/29
fromnetmikoimportConnectHandler 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=['interfaceGigabitEthernet1/0/29','shutdown'] #提交要配置的命令,input为提交的真实内容 input=net_connect.send_config_set(config_commands) #验证shutdown是否执行成功 output=net_connect.send_command('showrunintergi1/0/29') print(output) ##此为在windows里如果\n不能显示回车,则进行如下语句格式化 #o_list=output.split("\n") #forlineino_list: #print(line)
六、常用方法
- net_connect.send_command() #向下发送命令,返回输出(基于模式)
- net_connect.send_command_timing()#沿通道发送命令,返回输出(基于时序)
- net_connect.send_config_set()#将配置命令发送到远程设备
- net_connect.send_config_from_file()#发送从文件加载的配置命令
- net_connect.save_config()#将running#config保存到startup#config
- net_connect.enable()#输入启用模式
- net_connect.find_prompt()#返回当前路由器提示符
- net_connect.commit()#在Juniper和IOS#XR上执行提交操作
- net_connect.disconnect()#关闭连接
- net_connect.write_channel()#通道的低级写入
- net_connect.read_channel()#通道的低级写入
七、参考文献
1.https://pynet.twb-tech.com/blog/automation/netmiko.html
2.https://github.com/ktbyers/netmiko
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。