您当前的位置:首页 > 电脑百科 > 网络技术 > 网络技术

玩转网络自动化之Netmiko模块

时间:2020-09-09 12:43:53  来源:  作者:

众所周知网络设备的配置在不同厂商之间、相同厂商的不同型号之间及相同型号不同版本之间都有着巨大的差异,同时随着数据中心网络设备的爆发式增长,通过人工来配置管理这些设备显得力不从心。

此时我们就需要一个能够适配多厂商设备的自动化模块来辅助我们日常的运维工作,今天小编为大家带来网络自动化运维利器Pyhton Netmiko模块,下面让我们一起来了解该模块的使用吧!

阅读本文大约需要十分钟,您可以先关注我们或者收藏文章,避免下次无法找到。

1、 简介

Netmiko模块用于简化了paramiko与网络设备之间的ssh连接,提供了世界主流网络设备厂商的适配。该模块的创建者叫Kirk Byers,是一名网工同时也是一位CCIE。跟小编的Title出奇的一致……

2、 支持的设备与系统

Netmiko支持的设备与系统分为三类:

(1) 定期测试(Regularly tested)

定期测试是每个Netmiko版本都会针对该套设备运行完整的测试

(2) 有限测试(Limited testing)

有限测试意味着在某个时间点针对该平台上的特定配置与操作回显进行测试

(3) 实验性(Experimental)

实验性意味着模块开发进行了一般适配,但版本未经过系统的单元测试

每个种类适配的模块见下图,这些模块的适配会根据不同的Netmiko版本进行调整。

玩转网络自动化之Netmiko模块

 

3、 模块安装

玩转网络自动化之Netmiko模块

 

安装过程如下图所示:

玩转网络自动化之Netmiko模块

 

4、 模块使用

(1) 简单使用

现在来让我们来写第一个Netmiko程序实现设备版本的获取

玩转网络自动化之Netmiko模块

 

执行结果如下:

玩转网络自动化之Netmiko模块

 

在上图的代码传参中我们看到一个device_type参数,该参数告诉程序当前所要连接的设备的系统类型,那这时肯定会有读者问我们怎么判断设备所对应的参数类型呢?其实在Netmiko的安装目录下有个ssh_dispatcher.py的文件,该文件的第100行左右有个变量叫"CLASS_MAppER_BASE",通过该变量就可以准确的知道设备所对应的系统类型值了。

玩转网络自动化之Netmiko模块

 


玩转网络自动化之Netmiko模块

 

(2) 调用逻辑

通过上面的示例我们已经了解了Netmiko的简单使用,现在让我们来看看在建立SSH连接及执行send_command方法时Netmiko内部的大概调用逻辑,了解了该逻辑后在程序执行异常可以很容易的知道问题所在,还可以通过继承与重写实现Netmiko未适配的设备与场景。

玩转网络自动化之Netmiko模块

 

接下来我们来分析一下send_command()方法的源码,大概了解一下其内在的调用逻辑

玩转网络自动化之Netmiko模块

 

看完send_command的方法的源码有什么感觉,如果有任何疑问都可以在文章最后给小编留言哦!

(3) Netmiko常用方法介绍

a. send_command_timing()

基于延迟机制执行command命令,常用于查询场景,与send_command()方法不同之处在于该方法时在循环次数达到最大值自动退出,而send_command()方法则必须匹配到指定的退出标识,否则抛出异常。

b. send_config_set()

该方法可以同时执行多条命令,同时会把执行的过程进行返回,一般会用在配置下发场景,该方法会自动进入设备配置模式不需要额外传入进入配置模式的命令。

 

c. send_config_from_file()

该方法可以从文件中加载配置命令进行配置下发

d. write_channel()

该方法是将命令字符串写入SSH会话通道中

e. read_channel()

该方法是从SSH会话通道中读取设备的响应数据

f. disconnect()

该方法是关闭SSH会话

上面的常用方法源码如果大家对其感兴趣请在文章最后留言,小编会专门出文章对你们感兴趣的方法进行源码解读,谢谢!



Tags:Netmiko   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
众所周知网络设备的配置在不同厂商之间、相同厂商的不同型号之间及相同型号不同版本之间都有着巨大的差异,同时随着数据中心网络设备的爆发式增长,通过人工来配置管理这些设备...【详细内容】
2020-09-09  Tags: Netmiko  点击:(2960)  评论:(0)  加入收藏
▌简易百科推荐
写一个shell获取本机ip地址、网关地址以及dns信息。经常会遇到取本机ip、网关、dns地址,windows一个命令ipconfig /all全部获取到,但linux系统却并非如此。linux系统都自带ifc...【详细内容】
2021-12-27  K佬食古    Tags:shell   点击:(1)  评论:(0)  加入收藏
步骤1、配置 /etc/sysconfig/network-scripts/ifcfg-eth0 里的文件。it动力的CentOS下的ifcfg-eth0的配置详情:[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifc...【详细内容】
2021-12-24  忆梦如风    Tags:网卡   点击:(9)  评论:(0)  加入收藏
1、查找当前目录下所有以.tar结尾的文件然后移动到指定目录find . -name “*.tar” -execmv {}./backup/ ;注解:find –name 主要用于查找某个文件名字,-exec 、xargs可...【详细内容】
2021-12-17  郭主任    Tags:运维   点击:(18)  评论:(0)  加入收藏
对于经常上网的朋友来说,除了手机购物上网,pc端玩网页游戏还是很多小伙伴首选的,但是有时候明明宽带链接上了,打开浏览器却出现上不了网的现象,下面小编要来跟大家说说电脑有网络...【详细内容】
2021-12-16  小白系统    Tags:网页无法打开   点击:(28)  评论:(0)  加入收藏
在访问像github、gitlab这样的外国网站时,很有可能会出现页面加载不出来或找不到页面的错误。这时候有的朋友就会以为是网络的问题,于是把Wifi断掉连上自己手机的热点,结果却还...【详细内容】
2021-12-15  启施技术IT狼叔    Tags:外网   点击:(14)  评论:(0)  加入收藏
网络地址来源:获取公网IP地址 https://ipip.yy.com/get_ip_info.phphttp://pv.sohu.com/cityjson?ie=utf-8http://www.ip168.com/json.do?view=myipaddress...【详细内容】
2021-12-15  韦廷华12    Tags:外网ip   点击:(14)  评论:(0)  加入收藏
准备好软件IPOP、用ENSP模拟一下华为交换机 启动交换机 <Huawei>sysEnter system view, return user view with Ctrl+Z.[Huawei]sysname FTPClient[FTPClient]interface vla...【详细内容】
2021-12-15  思源Edward    Tags:交换机   点击:(22)  评论:(0)  加入收藏
我们经常用到netstat命令查看主机连接状况,包括连接ip、端口、状态等,今天就练习下shell分析netsat结果。描述假设netstat命令运行的结果我们存储在nowcoder.txt里,格式如下:Pro...【详细内容】
2021-12-14  K佬食古    Tags:netstat   点击:(19)  评论:(0)  加入收藏
什么是滑动窗口?窗口是操作系统开辟的一块缓存空间,发送方在收到接收方ACK应答之前,必须在缓冲区保留已发送的数据,如果按期收到确认应答,数据就可以从缓冲区移除。什么是滑动窗...【详细内容】
2021-12-14  DifferentJava    Tags:TCP   点击:(28)  评论:(0)  加入收藏
概述日常管理华为路由设备过程中,难为会忘记设备登录密码,那么该如何重置设备登录密码吗?本期文章将全面向各位小伙伴总结分享。重置华为设备登录密码思路先行 采用console登录...【详细内容】
2021-12-10  onme0    Tags:   点击:(26)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条