TextFSM模板太复杂?ntc-templates让一切变得简单!
之前的文章介绍了如何用TextFSM解析文本,但这需要编写复杂的模板和正则表达式。接下来的任务是为网络环境开发更多特定配置的解析模板,这非常耗时且需要丰富的经验。对于初学者来说,面对多变的网络配置,有一种更简便的方法:使用ntc-templates
这样的工具,可以简化工作并提高效率。
什么是ntc-templates
这是一款由Networktocode
团队开源的产品,它汇集了众多网络运维工程师的智慧,利用TextFSM
规则来帮助大家更轻松地解决网络配置解析方面的挑战。
-
众多厂商网络设备的配置解析的TextFSM模板库
-
进一步封装
Textfsm CliTable
部分,可以非常简洁的使用进而解析出网络配置成结构化数据。
ntc-templates的武器库
它内置了近400个Textfsm
解析模板,涵盖了多种主流网络设备,特别是思科的产品占据了很大一部分。同时,许多热心的国内用户也为H3C
和华为的相关命令贡献了宝贵的解析模板。
这些模板完全可以使用,只需要对一些细节进行微调就好了。
基本使用
安装
ntc-templates
的安装也比较简单。
pip install ntc_templates
解析文本
- 先引入
Ntc-templates
,执行如下命令
from ntc_templates.parse import parse_output
- 为了进行测试,我想简单地获取一段华为设备版本信息的非结构化数据,数据如下:
Version_output ="""VRP (R) software, Version 5.130 (S5710 V200R003C00SPC300)
Copyright (C) 2000-2013 HUAWEI TECH CO., LTD
Quidway S5710-52C-EI Routing Switch uptime is 541 weeks, 6 days, 23 hours, 39 minutes
LS52T52C 0(Master) : uptime is 541 weeks, 6 days, 23 hours, 38 minutes
512M bytes DDR Memory
200M bytes FLASH
Pcb Version : VER A
Basic BOOTROM Version : 161 Compiled at Jul 25 2013, 12:03:10
CPLD Version : 273
Software Version : VRP (R) Software, Version 5.130 (V200R003C00SPC300)
PWR1 information
Pcb Version : PWR VER B
PWR2 information
Pcb Version : PWR VER B"""
- 然后通过Ntc-templates解析成结构化数据。执行如下命令:
version_parsed = parse_output(platform="huawei_vrp", command="display version", data=Version_output)
- 打印解析后的数据,如所示:
[{'vrp_version': '5.130', 'product_version': 'S5710 V200R003C00SPC300', 'model': 'S5710-52C-EI Routing Switch', 'uptime': '541 weeks, 6 days, 23 hours, 39 minutes', 'patch_version': ''}]
网工界的TFBOYS
Netmiko
与TextFSM
及NTC-Templates
的结合,在NetDevOps
的世界里就像是TFBOYS
一样引人注目。它们让工作变得更加轻松有趣。要使用这一强大组合也非常简单,只需在调用send_command
时设置参数use_textfsm=True
即可享受这份便捷啦!
from netmiko import ConnectHandler
if __name__ == '__main__':
dev_info = {
'device_type': 'huawei',
'ip': '192.168.56.11',
'port': 22,
'username': 'user01',
'password': 'user01'
}
net_connect = ConnectHandler(**dev_info)
output = net_connect.send_command('display memory-usage',use_textfsm=True)
print(output)
推荐阅读
-
告别手动巡检,自动化让网络设备管理更高效
-
数据备份不再难,图解三大组网方式,保护你的数字生活
-
家庭数据存储新选择:NAS让你的手机不再烦恼存储空间!
-
开发者之选:Bruno如何在竞争中脱颖而出
-
数据安全保障:完全备份、增量备份与差异备份如何选?
-
记录一次Linux服务器被人使用SSH字典爆破
-
别再找了!这五款堡垒机满足你的所有需求