前面我们已经对环境搭建,paramiko,telnetlib 等做了一些实验探讨。 @弈心 大神说如果把 paramiko 比做手动挡汽车,netmiko 则可以说是自动挡汽车。来吧,快上车!快上车!今天我们就来初识一下 netmiko 模块。
实验背景
Netmiko 是作者 Kirk Byers 在 2014 年底基于 paramiko 开始开发的。它做了很多改进,如精简了 show (华为就是 display )命令的执行和回显内容的读取,简化了设备配置命令,支持了多厂商的设备和平台。
实验拓扑
【SSH 客户端】Win10 虚拟网卡,IP 为 192.168.11.2/24,桥接到云彩,Python所在。
【透明交换机】SW1(启动即可,无需配置,给云彩扩展端口使用)。
【SSH 操作对象】L3Sx,IP为 192.168.11.1x/24。
实验目的
使用 netmiko 模块登录交换机 L3S2 ,给它的 LoopBack0 口配置 IP 2.2.2.2/32, 之后保存退出,打印回显。
实验准备
首先我们联网安装 netmiko 模块。如果不考虑 Windows 系统【环境变量】等设置的话,我们可以直接 cd 到安装 Python 程序对应的 pip.exe 所在的文件夹路径中,执行 pip install netmiko。
按照拓扑,每台交换机 vlan 1 都配置 vlanif 的 IP 作为管理,需做到能手工逐台登录,具体可参见前序文章
实验前检查
- 按之前实验套路,PC 到 L3S2 的网络连通性,如不通需要排网络,本文此处描述从简。
2. 检查 L3S2 的 LoopBack0 情况。
Python 代码
代码
@弈心
大神在视频和书中都逐条做了详细解释,如需要请移步阅读,强烈建议看视频中的代码解释。这里我将其代码中的思科指令修改成华为指令,让实验能在华为设备来跑起来,然后结合华为指令对代码再做一点个人感受分享。好吧!看了下面的代码,是不是感觉比 paramiko 简介太多太多了,各种“多余”的操作,netmiko 都帮咱们完美屏蔽掉了。
from netmiko import ConnectHandler S2 = {'device_type':'huawei', 'ip':'192.168.11.12', 'username':'python', 'password':'123'} connect = ConnectHandler(**S2) print('已经成功登录交换机' + S2['ip']) #netmiko 已集成休眠、截屏等操作 config_commands = ['interface LoopBack 0','ip add 2.2.2.2 32'] #如果需要在系统视图下执行,可用send_config_set,会自动执行sys #截屏直接作为函数返回 output = connect.send_config_set(config_commands) print(output) print('\n=============我是分割线===================\n') #如果需要用户视图下执行,可用send_command #截屏直接作为函数返回 result = connect.send_command('display current-configuration interface LoopBack 0') print(result) |
实验过程
这个实验过程只是执行脚本,跑跑代码,等待回显过程展示。
实验结果检查
display current-configuration interface LoopBack0