作为网工,学会通过执行脚本,可以自动化的完成日常一些设备相关配置或信息收集等工作,可以说是事半功倍。
Nornir就是这样一个自动化网络运维工具。按照官网上的说明:
Nornir是用python编写的自动化框架,可与python一起使用。Nornir旨在通过提供一个纯Python框架来解决这些问题。
详细参考:
-
官网
Welcome to nornir’s documentation! — nornir 3.0.0 documentation -
插件介绍
Nornir Plugins :: nornir.tech — News and information about nornir’s projects
简单说,Nornir类似于Flask,具有模块化的特性,可以选择性的接入各种功能,其中比较贴近网络运维场景的就有Netmiko插件,熟悉的都知道,Netmiko本身就是一个适用于进行网络远程登录管理的python模块,而Nornir继承了其特性,甚至更发扬光大了。
在网络运维中,比较常见的工作,都有设备备份,设备配置,以及设备CMDB管理。
Nornir具备如下目录结构:
├── config.yaml
├── inventory
│ ├── defaults.yaml
│ ├── groups.yaml
│ └── hosts.yaml
├── nornir.log
├── nornir.py
- config.yaml
定义了基本工作时需要的相关配置
默认支持并发threaded
---
inventory:
plugin: SimpleInventory
options:
host_file: "inventory/hosts.yaml"
group_file: "inventory/groups.yaml"
defaults_file: "inventory/defaults.yaml"
runner:
plugin: threaded
options:
num_workers: 100
类似Ansible,Nornir也有一个inventory,其中定义了hosts和groups相关信息,以便工作时读取这些文件实现相关功能。
- hosts.yaml
如下,关于一个设备的hosts信息定义,其中platform决定了Nornir自动将设备识别为何种类型,这里指定了"huawei",就是指这是一个网络设备(暂时没有找到H3C对应的类型),而如果是一个linux服务器,就是指定为" platform: linux"。
---
h3c_sw:

Nornir是一个自动化网络运维工具,允许通过执行脚本自动化设备配置和信息收集。它支持并发操作和模块化插件,如Netmiko,方便网络设备管理。本文介绍了如何使用Nornir和Netmiko插件来收集H3C设备的SN号,展示了Nornir的目录结构和inventory配置,并给出了收集SN号的脚本示例。
最低0.47元/天 解锁文章
453

被折叠的 条评论
为什么被折叠?



