推广 热搜: 采购方式  甲带  滤芯  气动隔膜泵  减速机  履带  带式称重给煤机  减速机型号  链式给煤机  无级变速机 

在设备自动上线时,Python比TCL好用吗?

   日期:2023-09-04 01:23:01     来源:网络整理    作者:本站编辑    评论:0    

正文共:1314 字 11 图,预估阅读时间:3 分钟


世人都言Python好,简单易学效率高。


Python是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,简单而有效地实现了面向对象编程。

其实,H3C Comware V7系统不仅内嵌了TCL解析器,还内嵌了Python解释器,可以直接在设备上使用Python2.7版本的命令和标准API。

Python解析器

H3C Comware V7系统内嵌了Python解释器。用户可以进入Python shell,使用Python的命令、标准API和扩展API;还可以直接在设备上执行Python脚本,以方便自动化配置系统。

在用户视图下执行python命令即可进入Python shell视图。

在Comware V7中提供的扩展Python API,扩展Python API必须遵循标准Python语言语法。在使用扩展Python API时,必须先导入Comware包,导入方法有两种:

1、用import comware引入整个Comware包,在执行具体API的时候用comware.API。

方法二:用from comware import API引入单个API。

需要注意,Python视图下开头不要有空格,不然就会像这样,而且不支持一些快捷键,如果需要修改,那就是左右移动,再加上回删键(BackSpace)

关于Comware的Python扩展,可以参阅H3C官网手册。主要如下:

CLI类
CLI(command=‘’, do_print=True)CLI.get_output()
Transfer类
Transfer(protocol=‘’, host=‘’, source=‘’, dest=‘’, vrf=‘’, login_timeout=10, user=‘’, password=‘’)Transfer.get_error()
API类
get_self_slot()get_standby_slot()
Python配置文件

好,相信你对Python配置已经有了一定了解,那么我们来写一份Python配置文件device.py。

其实很简单,加上一个文件说明(#!usr/bin/python),说明这是一个Python文件,再把上次的TCL文件整合到一行,用分号隔开即可。

device.py文件内容如下:

#!usr/bin/pythonimport comwarecomware.CLI(‘system-view ; sysname H10086C ; interface GigabitEthernet0/0 ; ip address dhcp-alloc ; line con 0 ; idle-timeout 0 0 ; save force ; return’)
实验组网

还是那张祖传的随意拓扑,实验环境为HCL。路由器MSR36-20(Version 7.1.075, Alpha 7571),是本次测试的自动配置上线设备;交换机S5820V2-54QS-GE(Version 7.1.075, Alpha 7571),承担DHCP服务器的角色;PC上安装HFS,作为存储设备配置的HTTP服务器。

配置DHCP服务器

跟上个使用TCL的实验相比,修改使用bootfile-name命令配置DHCP客户端使用的启动文件名为device.py即可。

那么交换机的配置如下:

#sysname DHCP-Server#dhcp enable#vlan 1#vlan 10#dhcp server ip-pool ztp gateway-list 172.16.113.254 network 172.16.113.0 mask 255.255.255.0 bootfile-name http://192.168.56.1/device.py#interface Vlan-interface1 ip address 172.16.113.254 255.255.255.0 #interface Vlan-interface10 ip address 192.168.56.10 255.255.255.0#interface GigabitEthernet1/0/1 port link-mode bridge#interface GigabitEthernet1/0/2 port link-mode bridge#interface GigabitEthernet1/0/3 port link-mode bridge#interface GigabitEthernet1/0/4 port link-mode bridge port access vlan 10
开始设备自动上线

配置好电脑端的HFS,将配置文件放到指定目录下。

将MSR2开机启动,依旧是第二次获取到配置文件。

但是竟然报错了,检查一下本地运行有没有问题。

好像是编码的问题,单引号的格式不一样,正常敲出来是‘’成对的,但是命令行里面需要是两个',先空跑一遍,执行成功,把执行成功的命令粘到配置文件中。

修改device.py文件内容如下:

#!usr/bin/pythonimport comwarecomware.CLI('system-view ; sysname H10086C ; interface GigabitEthernet0/0 ; ip address dhcp-alloc ; line con 0 ; idle-timeout 0 0 ; save force ; return ')

再回过来用MSR3看自动配置上线过程,成功下载device.py,并成功执行脚本命令。

使用Python的方式,还能看到命令下发过程,NICE。设备名称配置成功,地址获取成功,配置保存成功。

看来官网案例又有问题,示例里面的引号用的不对,大家复制粘贴我的就好了。

从抓包看一下过程。

首先是设备通过DHCP获取IP地址,然后是请求device.py,下载之后直接运行。而且,因为是HTTP协议,可以直接看到请求的文件内容。

哎,MSR4这次都没有登场。

总结

1、使用Python配置和使用TCL命令、手工配置命令的方式、逻辑都比较像,但是要注意Python文件的段落格式以及字符格式等问题;

2、Python视图下开头不要有空格,不然就报错,而且不支持一些快捷键,如果需要修改,那就是左右移动,再加上回删键(BackSpace);

3、华三官网的命令示例又出了问题,大家需要注意单引号的格式问题。

长按二维码
关注我们吧

我今天学习了一下3个perf:iperf、netperf和qperf
不会吧?网络工程师的知识圣经-RFC文档,你还不知道怎么查?
Windows 7无视TPM检测直升Windows 11
授人以鱼不如授人以渔,希望通过此“文章合集”复刻一个高级网络工程师出来!
软路由是啥?OpenWrt又是啥?长啥样?在VMware装一个瞅瞅
TCL + 自动配置功能 = 设备自动上线
 
打赏
 
更多>同类资讯
0相关评论

推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  皖ICP备20008326号-18
Powered By DESTOON