Python netmiko模块的使用


Posted in Python onFebruary 14, 2020

一、简介

此模块用于简化paramiko与网络设备之间的ssh连接,可在windows与Unix平台使用 

二、目前支持的设备

(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

三、实验环境

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
pip install netmiko

ps:没有全部安装前提模块,在使用netmiko没有报错,说明运行代码里没有调用到而已,而不是不需要

五、简单实例

5.1 执行查看命令: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)

#执行命令,返回结果为字符串,赋值给output
output = net_connect.send_command('show ip int brief')
print(output)

# #此为在windows里如果\n不能显示回车,则进行如下语句格式化
# o_list = output.split("\n")
# for line in o_list:
#   print(line)

5.2 执行配置命令:手动关闭接口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为提交的真实内容
input = net_connect.send_config_set(config_commands)

#验证shutdown是否执行成功
output = net_connect.send_command('show run inter gi1/0/29')
print(output)

# #此为在windows里如果\n不能显示回车,则进行如下语句格式化
# o_list = output.split("\n")
# for line in o_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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的localtime()方法使用详解
May 22 Python
详解Python中的各种函数的使用
May 24 Python
Python中方法链的使用方法
Feb 23 Python
python版学生管理系统
Jan 10 Python
Python进阶之递归函数的用法及其示例
Jan 31 Python
用python 批量更改图像尺寸到统一大小的方法
Mar 31 Python
python和opencv实现抠图
Jul 18 Python
解决Python获取字典dict中不存在的值时出错问题
Oct 17 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
Aug 23 Python
python 读取、写入txt文件的示例
Sep 27 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
Mar 03 Python
教你用Python爬取英雄联盟皮肤原画
Jun 13 Python
pytorch模型存储的2种实现方法
Feb 14 #Python
Python3运算符常见用法分析
Feb 14 #Python
pytorch实现从本地加载 .pth 格式模型
Feb 14 #Python
python 实现线程之间的通信示例
Feb 14 #Python
Python3变量与基本数据类型用法实例分析
Feb 14 #Python
OpenCV中VideoCapture类的使用详解
Feb 14 #Python
Python networkx包的实现
Feb 14 #Python
You might like
JAVA/JSP学习系列之四
2006/10/09 PHP
浅析Yii2缓存的使用
2016/05/10 PHP
PDO::prepare讲解
2019/01/29 PHP
一个无限级XML绑定跨框架菜单(For IE)
2007/01/27 Javascript
jQuery 插件 将this下的div轮番显示
2009/04/09 Javascript
mysql输出数据赋给js变量报unterminated string literal错误原因
2010/05/22 Javascript
跨域请求之jQuery的ajax jsonp的使用解惑
2011/10/09 Javascript
纯Javascript实现ping功能的方法
2015/03/20 Javascript
全面解析Bootstrap弹窗的实现方法
2015/12/01 Javascript
jQuery获取选中单选按钮radio的值
2016/12/27 Javascript
JS中的作用域链
2017/03/01 Javascript
原生JS实现九宫格抽奖效果
2017/04/01 Javascript
JS实现json的序列化和反序列化功能示例
2017/06/13 Javascript
Vue.js弹出模态框组件开发的示例代码
2017/07/26 Javascript
mongoose设置unique不生效问题的解决及如何移除unique的限制
2017/11/07 Javascript
JQuery 又谈ajax局部刷新
2017/11/27 jQuery
vue-cli 打包使用history模式的后端配置实例
2018/09/20 Javascript
js实现黑白div块画空心的图形
2018/12/13 Javascript
[43:58]DOTA2-DPC中国联赛定级赛 LBZS vs SAG BO3第一场 1月8日
2021/03/11 DOTA
使用Python中的线程进行网络编程的入门教程
2015/04/15 Python
一些常用的Python爬虫技巧汇总
2016/09/28 Python
基于Pandas读取csv文件Error的总结
2018/06/15 Python
Python基于sklearn库的分类算法简单应用示例
2018/07/09 Python
浅谈python中拼接路径os.path.join斜杠的问题
2018/10/23 Python
python实现根据文件关键字进行切分为多个文件的示例
2018/12/10 Python
Python更新所有已安装包的操作
2020/02/13 Python
python从ftp获取文件并下载到本地
2020/12/05 Python
python 对xml解析的示例
2021/02/27 Python
纯CSS3实现给头像加个光芒四射且旋转的背景动画效果
2014/05/07 HTML / CSS
一款纯css3制作的2015年元旦雪人动画特效教程
2014/12/29 HTML / CSS
怎样创建、运行java程序
2014/08/01 面试题
简述安装Slackware Linux系统的过程
2012/01/12 面试题
党的群众路线教育实践活动总结材料
2014/10/30 职场文书
党员考试作弊检讨书1000字
2015/02/16 职场文书
政工师工作总结2015
2015/05/26 职场文书
2017年寒假少先队活动总结
2016/04/06 职场文书