华为交换机 nornir + textfsm使用入门

自动化运维初级村-巡检-文本解析-从正则到TextFSM 有很多朋友一开始就想从TextFSM上手,但TextFSM究竟比正则强在哪儿?TextFSM所遵循的状态转移和匹配机制究竟是如何产生又是如何运用的? 在我带领大家实践正则表达式的过程中,大家会发现如此灵活的正则匹配的短板在哪里?而这些短板恰恰就是催生TextFSM的重要因素。 阅读详情

安装相关模块

pip3 install netmiko

pip3 install napalm

pip3 install nornir

pip3 install nornir_utils

pip3 install nornir_napalm

pip3 install nornir_netmiko

pip3 install textfsm

创建相关配置文件(config.yml,defaults.yaml,groups.yaml,hosts.yaml)

config.yml

---
inventory:
    plugin: SimpleInventory
    options:
        host_file: "hosts.yaml"
        group_file: "groups.yaml"
        defaults_file: "defaults.yaml"
runner:
    plugin: threaded
    options:
        num_workers: 100

defaults.yaml

---

username: xxx
password: 'xxx'

groups.yaml

---

huawei_test:

        platform:huawei

hosts.yaml

---
test1:
    hostname: 192.168.x.x
    username: xxx
    password: 'xxx'
    groups:
        - huawei_test

python输出device信息:

from nornir import InitNornir
from nornir_netmiko import netmiko_send_command
from nornir_utils.plugins.functions import print_result
from nornir.core.filter import F

nr = InitNornir(config_file="config.yaml")

def dis_device(group,cmd):

        group = nr.filter(F(groups__contains=group))

        results = group.run(netmiko_send_command, command_string=cmd,use_textfsm=True)

        for key in results.keys:

                res = results[key].result

                ip = group.inventory.hosts[key].hostname

dis_device('huawei_test','display device')

#use_textfsm=True ,如果模板存在就按照模板显示

#路径  ...../site-packages/ntc-templates/templates

#自定义模板,templates文件夹下

创建huawei_display_device.textfsm:

Value Filldown device_name (.+) 

Value Filldown Slot (\w+)

Value Type (\S+)

Value Online  ([a-zA-Z]+)

Value Register ([a-zA-Z]+)

Value Status ([a-zA-Z]+)

Value Role  ([a-zA-Z]+)

Value LsId (\d+)

Value Primary([a-zA-Z]+)

Start

        ^${device_name}\s+Device\s+Status

                ^${Slot}\s+${Type}\s+${Online}\s+${Register}\s+${Status}\s+${Role}\s+${LsId}\s+${Primary}\s+ -> Record

EOF

同时在templates文件夹的index文件添加一行

huawei_display_device.textfsm, .* ,huawei ,disp[[lay]]  dev[[ice]]

ntc-templates:用于解析网络设备的show命令的TextFSM模板 NTC模板 网络设备的TextFSM模板的存储库,以及TextFSM的CliTable的Python包装器。 是Google的一个项目,该项目获取CLI字符串输出,并通过一系列正则表达式传递每一行,直到找到匹配项。 正则表达式使用命名捕获组从有效文本中构建文本表。 捕获组的名称用作列标题,捕获的值在表中存储为行。 该项目为各种网络供应商提供了大量的TextFSM模板(文本解析器)。 除了模板之外,还有一个函数可以将CLI输出转换为CliTable对象。 结果文本表将转换为字典列表,将列标题与表中的每一行相对应。 从v2.0.0版本开始,该项目使用进行打包和分发。 为了使用诗歌, templates目录已移至ntc_templates/templates 安装及使用 可以使用Git + Poetry或PyPI安装该项目。 吉特 $ git clone git@github.com:ne 立即下载

相关推荐

当 AI + 可视化融入消防:开启智能消防新时代

总结来说,AI + 可视化技术融入消防,开启了智能消防新时代。它以精准预警、高效救援和全面资源管理,革新消防工作方式。从前期规划到系统搭建,再到后期运维,每个环节都为提升消防能力奠定基础。尽管面临技术成本、数据安全和人员适应等挑战,但随着技术发展和应用推广,这些问题将逐步解决。相信在 AI + 可视化助力下,消防领域将不断进步,为人们创造更安全生活环境,有效抵御火灾威胁。

2401_87844374的博客 1220

textfsm模块介绍(简单易懂)

是正则表达式中的一种特殊字符,用于匹配输入字符串的开始位置,注意紧随其后的$不是正则表达式里的$,它的作用不是用来匹配输入字符串的结尾位置,而是用来调用我们之前设置好的VLAN_ID并匹配该变量。VLAN_ID对应的正则表达式恰巧是\d+,这样就匹配到了1、2、3、4、5、6、7、8这些VLAN_ID,而后面的\s+则表示匹配1、2、3、4、5、6、7、8后面的空白字符(\s这个特殊序列用来匹配空白字符)。在以前讲过,\d这个特殊序列用来匹配数字,后面的+用来做贪婪匹配。

不许人间丶见白头 1281

手把手教你获取全国街道级GeoJSON数据:前端地图开发必备技巧

本文详细介绍了获取全国街道级GeoJSON数据的多种方法,从前端地图开发的实际需求出发,涵盖了免费获取省市县级数据的工具如阿里云DataV.GeoAtlas和HashTang,以及进阶的街道级数据获取方案,包括使用Bigemap GIS Office和专业数据采购。文章还提供了数据处理与优化技巧,帮助开发者高效使用GeoJSON数据进行地图可视化。

weixin_29053383的博客 289

探索Google的TextFSM:一种强大的文本解析工具

是Google开发的一个开源项目,它提供了一种结构化的方法来解析非结构化的文本数据,将其转换为结构化的表格形式。这种技术在处理日志文件、系统输出、配置文件等场景中非常有用,能够帮助开发者和运维人员有效地提取和管理信息。 ## 项目简介 TextFSM( Finite State Machine for Text)利用有限状态机的概念,通过定义一系列模板规则,将杂乱无章的文本输入转化为有序的结构

gitblog_00096的博客 640

C语言 函数

一、什么是函数 二、函数的相关语法 三、函数编码规范

m0_57105760的博客 1890

遥感新手别纠结!实测ENVI 5.3、5.6、6.0三个免费版,教你混搭安装避坑

本文为遥感新手提供ENVI 5.3、5.6、6.0三个免费版的实测对比与混搭安装指南,帮助用户构建零成本高效工作流。详细解析各版本功能差异、共存安装技巧及常见问题解决方案,特别适合课程作业、毕业论文分析和遥感入门练习。

weixin_30819085的博客 472

探秘TextFSM:解析半结构化文本的利器

TextFSM是一个Python模块,它实现了基于模板的状态机来解析半结构化的文本数据。这个项目最初是为了方便从网络设备的命令行界面(CLI)获取信息而开发的。它不仅可以用于网络设备,其强大的通用性使得它适用于任何需要从复杂文本中抽取信息的场景。 TextFSM的主要功能是接受一个模板文件和待处理的文本输入,然后返回一个包含解析出的数据记录的列表。通过创建针对不同结构文本的模板,你可以轻松地从中

gitblog_00489的博客 663

使用JAVA代码转word文档之动态生成数据填充(图文详解)

今天跟公司对接了业务,根据业务需求,乙方需求文档是word格式的,而我们的数据是动态数据,每生成一份数据,就要以word的形式给乙方一份邮件!这就给了我们的工作一定的难度和挑战! 通过阅读资料,团队的帮助以及自我测试,终于实现了这个功能!因为在搜索资料方面,发现各位博主讲的比较模糊,自己碰到了很多bug,浪费了很多宝贵的时间,所以今天写了这篇文章,希望对自己以后或者他人有所帮助! 操作第一步:先准...

huaiyan 7719

textfsm模块介绍

简介 TextFSM是一个Python模块,该模块实现了用于分析半格式文本的基于模板的状态机。最初是为了允许以编程方式访问由CLI驱动的设备(例如网络路由器和交换机)的输出所给出的信息而开发的,但是它可用于任何此类文本输出。 引擎接受两个输入-模板文件和文本输入(例如来自设备的CLI的命令响应),并返回包含从文本中解析出的数据的记录列表。 每个唯一结构化的文本输入都需要一个模板文件。该代码提供了一些示例,并鼓励用户自己开发。 通过开发模板文件池,脚本可以调用textFSM来解析来自各种来源的

Code小学僧的课后笔记 3539

格(Lattice)基础(一)

有关格的基础概念,和相关的格难题

Amire0x的小乐园 5698

实现边缘实时动物检测:YOLOv5模型优化与树莓派4B部署全攻略

本文介绍了基于高性能计算机训练YOLOv5目标检测模型,并部署到树莓派4B实现实时动物检测的全流程。主要内容包括:1)在高性能计算机上通过Anaconda创建虚拟环境,安装YOLOv5项目并进行模型训练;2)将训练好的best.pt模型迁移到树莓派,配置轻量级Miniconda环境;3)连接树莓派摄像头,运行实时检测程序。该系统兼顾了训练效率和边缘设备部署的实用性,可广泛应用于智慧农业、生态监测等场景。文中详细说明了数据准备、环境配置和部署步骤,为开发轻量级目标检测系统提供了完整参考方案。

m0_64661770的博客 201

Python-TextFSM 学习指南

TextFSM 是一个 Python 库,用于解析结构化的文本数据,特别是从网络设备返回的命令输出中提取关键信息。它通过定义模板,使用正则表达式将文本解析成有组织的数据结构,如表格或字典,非常适合网络自动化。TextFSM 提供了一种灵活、强大的方法来处理复杂的文本数据,特别适合网络工程师和自动化开发者。在学习过程中,可以尝试结合实际场景编写模板文件并解析命令输出,快速上手。:广泛用于处理网络设备的 CLI 命令输出,例如 show 命令结果。:使用简单的模板文件定义要解析的文本格式。

chzhqgood的博客 576

本地生成无限量的AI图像和视频——无需网络,无限制,本地人工智能图像和视频生成的实用指南

我们将使用ComfyUI,这是一个功能强大的基于节点的 AI 图像和视频生成可视化界面。如果您是 ComfyUI 的新手,请不要担心。ComfyUI是什么?ComfyUI 是一款可视化工具,可让您在自己的计算机上生成 AI 图像和视频。您无需一次性理解所有内容。在本指南中,我们将从现成的工作流程入手,逐步帮助您建立信心。乍一看,内容似乎很庞杂——但本指南将着重于:-简单的工作流程-预构建示例-最少的配置我想向你展示使用这个工具最简单的工作流程。

iCloudEnd的博客 1801

TextFSM:来自谷歌的网络配置解析利器

Textfsm简介 Textfsm由text(文本)和fsm(有限状态自动机)两部分组成,它是谷歌开源的一个用于解析半格式化文本的Python模块。它的诞生也是专门为网络而生,你可以去github的wiki上看,它是为了解析通过cli驱动的网络设备的信息而诞生的。 传统的网络设备的配置解析,我们之前也分享过,通过正则表达式去解析,同时我也进行了分类: OneTake:一次解析出所有信息(如show version),基于此可以循环使用实现show ip arp等信息的解析 分而治之:对于show int

weixin_46696250的博客 3063

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

JSON、TextFSM和ntc-templates

感谢知乎大佬:@弈心 本文是基于@弈心大佬(王印)的书籍《网络工程师的python之路》所整理的笔记 1.JSON JSON诞生于1999年12月,是JavaScript Programming Language(Standard ECMA-262 3rd Edition)的一个子集合,是一种轻量级的数据交换格式。虽然JSON基于JavaScript开发,但它是一种“语言无关”(Language Independent)的文本格式,并且采用C语言家族,如C、C++、C#、Java、Python和Pe

qq_45959697的博客 2844

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Python -- Web界面的网络配置解析利器TextFSM(Docker版本)

TextFSM是用来处理网络设备(或其他)输出信息的一个库,可依据自身场景,通过匹配自定义模板的形式,将无规律文本内容打造成 NetDevOps 平台想要的有序数据格式,进而拉平多厂商不同型号设备的输入输出,屏蔽底层数据的差异。......

⎛⎝世界⎠⎞的博客 1468

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【亲测免费】 Google的TextFSM:强大文本解析工具的深度探索

**项目基础介绍与主要编程语言** TextFSM,由Google内部开发并开源至GitHub,是一款用Python编写的强大模块,专注于将半结构化文本转换成易于处理的Python数据表。这款开源工具旨在简化从命令行界面(CLI)等来源提取信息的过程,尤其适用于网络设备管理场景。TextFSM通过采用模板机制,高效地解析复杂格式的文本输出,使得开发者能够灵活地从各种不同格式的文本数据中提取有用信息...

gitblog_01242的博客 583

【亲测免费】 文本结构解析工具TextFSM概述及新手指南

**基础介绍:** TextFSM,由Google内部开发并对外开源的一个Python模块,主要用于将半结构化的文本数据解析成Python中的表格形式。该工具最初设计用于从网络设备的命令行界面(CLI)返回的信息中提取程序可操作的数据。它通过模板文件与待解析的文本输入结合工作,最终输出包含解析后数据的记录列表。TextFSM支持通过创建不同的模板来适应多种文本结构,从而实现对来自不同源头信息的有效

gitblog_01292的博客 921

TextFSM 教程

**TextFSM** 是一个由 Google 开发并开源的 Python 模块,它提供了基于模板的状态机来解析半结构化的文本数据。这个工具最初设计用于自动化从命令行接口(CLI)驱动的设备如网络路由器中提取信息。通过使用模板文件,TextFSM 能够将设备响应的命令输出转换成可读性强的数据表格。 ## 2. 项目快速启动 ### 安装 首先确保你的环境中已经安装了 Python。然后,你可

gitblog_00253的博客 877

NetDevOps:华三交换机通过Netmiko或者Nornir获取接口信息通过TextFSM解析报错问题

查看解析模板在“^\s*Unicast”后添加“^\s*Known-unicast”python代码:实现功能获取交换机接口信息并通过TextFSM进行解析。应该是此条信息无法匹配查看端口采集信息。再次运行,解析正常。

liuya000的博客 995

TextFSM模板太复杂?ntc-templates让一切变得简单!

这是一款由团队开源的产品,它汇集了众多网络运维工程师的智慧,利用TextFSM规则来帮助大家更轻松地解决网络配置解析方面的挑战。众多厂商网络设备的配置解析的TextFSM模板库进一步封装部分,可以非常简洁的使用进而解析出网络配置成结构化数据。

didiplus 653

如何快速解析网络设备输出:TextFSM 完整入门指南

TextFSM 是 Google 开发的一款强大的 Python 模块,专门用于解析半结构化的文本数据并将其转换为易于处理的 Python 表格。这个工具最初设计用于自动化从命令行接口(CLI)驱动的设备如网络路由器中提取信息,现已成为网络自动化和日志分析领域的利器。 ## 什么是 TextFSM? TextFSM 是一个基于模板的状态机解析器,它能够将杂乱的设备输出转换成结构化的数据。想象一

gitblog_00878的博客 644

通过napalm-huawei-vrp模块对华为交换机信息进行分析(ENSP模拟器)

NAPALM概述: NAPALM作为python的第三方模块,其依赖于Netmiko,但在使用时不需要单独导入Netmiko。 NAPALM的主要作用是将show或者display显示的结果转换为有序的结构类型(方便使用python进行处理分析),类似于textfsm和ntc-templates;同时,NAPALM还可以对网络设备进行配置。 NAPALM的最大缺点是,目前仅支持国外的主流厂商:思科、Arista、Juniper,对国内的设备的操作系统并不支持。 NAPALM具体详解请参照: https://

tushanpeipei的博客 2611

TextFSM进阶版:一个基于TextFSM和Jinja2的文本解析和渲染库。

TextFSM-Jinja是一个结合TextFSM文本解析和Jinja2模板渲染的Python库,专门用于处理半结构化文本数据。它支持从网络设备配置等文本中提取结构化信息,并通过自定义模板进行格式化输出。 主要功能包括: 使用TextFSM模板解析文本并提取结构化数据 通过Jinja2模板灵活渲染输出结果 支持自定义函数扩展模板功能 提供图形界面用于模板验证 支持从外部Python模块加载自定义函数 该库特别适合网络设备配置解析、日志处理等场景,通过简洁的配置即可实现复杂的文本解析和格式化任务。安装方式支持

段福的个的博客 990

网络工程师的Python之路——TextFSM

文章目录参考阅读重点核心(正则内容)tracert信息的TextFSM整形version信息的整形 本文参考了知乎专栏的两位大佬的文章,此Blog仅用于记录学习各种TextFSM模板的书写 朱嘉盛 弈心 参考阅读 网络工程师的Python之路–汇总 关于TextFSM的详细解读,点击如下URLTextFSM:强无敌的配置解析利器-全面解读 重点核心(正则内容) 正则如何匹配,不做过多赘述,再后续的数据整形中品味正则是如何使用的 tracert信息的TextFSM整形 模板文件位置:位于同级目录下templ

Hala 2548

TextFSM模板开发详解:从零构建你的第一个解析模板

TextFSM是一款强大的Python模块,能够将半结构化文本数据解析为结构化表格,广泛应用于网络设备配置解析、日志处理等场景。本文将带你从零开始,掌握TextFSM模板开发的核心技能,轻松应对各类文本解析任务。 ## 一、TextFSM基础:模板核心结构解析 📚 TextFSM模板由**Table**、**Value**和**Start**三大核心区块组成,共同定义了解析规则和输出格式。通

gitblog_00056的博客 993
上一篇: Environment Modules 安装配置
下一篇: ansible playbook 华为网络设备自动下发
binlinuxbin
博客等级 码龄11年 168粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值