使用python导出华为网络设备中的配置为excel文件
本文最后更新于:August 16, 2019 pm
项目github地址:https://github.com/tiny777/ServersManagementTools
0、概述
这个脚本需要实现的功能很简单,就是自动ssh登录到网络设备上,查询相应的白名单,然后将结果导出成excel表格,具体的操作命令如下,对应的设备是华为的AC6605。
1 |
|
- 由于这里使用的是
netmiko
库,所以除了华为的网络设备,思科的设备也能支持,只需要在代码文件中稍作修改即可。 - 相应的命令也可以进行修改成其他的系列命令
1、软件版本
eNSP的BUG非常多,这里搭建拓扑来进行测试使用的软件版本是
eNSP 1.2.00.500 V100R002C00
VirtualBox Graphical User Interface Version 5.1.26r117224(Qt5.6.2)
WinPcap_4_1_3
- Wireshark没有用到,版本应该无所谓
- 操作系统是
win10 pro
,Microsoft Windows Version 1903(OS Build 18362.239)
2、配置eNSP桥接真机
这里使用的是AC6605,对真机进行桥接,使用的桥接网卡是VMware WorkStation 15.1 的VMnet8网卡,即NAT模式的网卡,不是eNSP上面的192.168.56.1的那个网卡(这个老是有问题,各种ping不同)。
接下来的eNSP内的桥接配置就十分简单了,添加一个UDP端口,然后添加一个网卡,再添加端口映射,就可以了。可以参考下面的这张图。
接着我们拖入一个设备,我这里使用的是华为的AC6605。
给它配置一个IP地址然后测试一下。
1 |
|
然后我们ping一下真机的网卡,能通就说明桥接成功了。
3、配置SSH服务
首先进行系统视图,然后创建rsa key
,全部选择默认,接着启动stelnet
服务。
1 |
|
接着配置用来远程的终端
1 |
|
然后创建用户并设置密码。然后启动ssh服务。
1 |
|
最后回到系统视图下,设置ssh用户的登录方式为密码登录。
1 |
|
4、保存配置
上面的所有配置如果不保存,当前的终端退出就会失效,所以要记得保存配置,方法是退到最开始的登录视图输入save就能保存了。
5、def sshLogin
这里使用netmiko
来对网络设备进行ssh
登录,考虑到获取到的结果是包含了命令执行过程中的所有套接字,因此得到结果之后,先将其全部写入一个debug.log
文件中保存记录,再将该次的操作结果写入cache
文件用于下一步处理。
6、def sort_to_csv
对于输出的结果进行筛选处理,我们需要用到re
库的正则表达式,以及split()
,因为大多数的输出结果是以空格来分列的,因此使用split()
来处理这些字符是最好不过的了。
最后导出成csv
文件而不是直接导出excel的xlsx
文件则是因为csv
相比xlsx
更容易读取处理,转成其他格式也更加方便。
7、def csv_to_xlsx_pd
这里就是使用pandas
库来将上一步生成的csv
转为xlsx
文件了,非常的简单,需要的注意的就是添加的行名和列名参数。