paramiko模块_玩转网络自动化之Netmiko模块

Netmiko模块是Python中用于网络设备SSH连接的工具,由Kirk Byers创建,支持多种设备和系统。本文介绍了Netmiko的简介、支持的设备类别、安装步骤以及简单使用示例,包括send_command、send_config_set等常用方法。通过了解这些,可以帮助网络运维人员更高效地管理设备。
摘要由CSDN通过智能技术生成

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

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

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

1、 简介

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

2、 支持的设备与系统

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

(1) 定期测试(Regularly tested)

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

(2) 有限测试(Limited testing)

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

(3) 实验性(Experimental)

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

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

f63d268b3d27288bc32eeca89e24c6b7.png

3、 模块安装

863d35e20a2fd68372db43ed65eff820.png

安装过程如下图所示:

7e5c35fc27ff1581cf308ecb84afda3e.png

4、 模块使用

(1) 简单使用

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

5a07a9bfe24985b764141581f1154dbc.png

执行结果如下:

bb1ab5acae591e72b7cbac7ce5eddcab.png

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

947c18e456fe5e3a661343a75f19a1a1.png
f4a78d55afd1737b5c96c9392cf4b2e7.png

(2) 调用逻辑

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

2a481b336861ffed4e80cdf541d025fe.png

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

0bd43ed7a202051c49754ab1add32295.png

看完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会话

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

--喜欢的同学请点击关注IT管理局哦--

本局精彩文章:

  • 99%的人都能掌握的Chrome使用技巧
  • 一文秒懂 TCP/IP实际五层结构(上篇)
  • Wireshark数据包分析三板斧
  • 在国企做IT是一种什么样的体验
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值