1. 基础配置

目录结构如下:

.
|-- config.yaml  #配置文件,定义设备库的路径,线程等
|-- inventory
|   |-- defaults.yaml  #所有设备默认配置
|   |-- groups.yaml  #组内设备共有配置
|   |-- hosts.yaml  #单个设备配置
|-- main.py  #运行文件

config.yaml 内容如下:

---
inventory:plugin: SimpleInventoryoptions:host_file: "inventory/hosts.yaml"group_file: "inventory/groups.yaml"defaults_file: "inventory/defaults.yaml"
runner:plugin: threadedoptions:num_workers: 100

hosts.yaml 内容如下:

---
R1.cc:hostname: 10.0.0.241port: 22platform: cisco_iosgroups:- routerdata:interfaces: {"Gi0/3": "10.0.0.241/24"}CS1.cc:hostname: 10.0.0.242platform: cisco_iosgroups:- switchAS1.cc:hostname: 10.0.0.243platform: cisco_iosgroups:- access- switch
AS2.cc:hostname: 10.0.0.244platform: cisco_iosgroups:- access- switch

groups.yaml 内容如下:

---
access:data:vlans:10: pc20: phone30: printer
router:data:switch:data:

defaults.yaml 内容如下:

---
username: user
password: password

main.py 内容如下:(注:以下代码只适合nornir 3.0以上,因新版nornir的plugin需要额外安装。)

from nornir import InitNornir
from nornir_netmiko import netmiko_send_command
from nornir_utils.plugins.functions import print_result
from nornir.core.filter import Fnr = InitNornir(config_file="config.yaml")#print(nr.inventory.hosts)#print(nr.inventory.groups)#print(host["vlans"])host = nr.inventory.hosts["AS2.cc"]assw = nr.filter(F(groups__contains="access"))result = assw.run(netmiko_send_command, command_string="sh ip int brief")print_result(result)

2. 运行测试

$ python main.py
netmiko_send_command************************************************************
* AS1.cc ** changed : False ***************************************************
vvvv netmiko_send_command ** changed : False vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv INFO
Interface              IP-Address      OK? Method Status                Protocol
GigabitEthernet0/0     unassigned      YES unset  up                    up
GigabitEthernet0/1     unassigned      YES unset  up                    up
GigabitEthernet0/2     unassigned      YES unset  up                    up
GigabitEthernet0/3     10.0.0.243      YES manual up                    up
GigabitEthernet1/0     unassigned      YES unset  up                    up
GigabitEthernet1/1     unassigned      YES unset  up                    up
GigabitEthernet1/2     unassigned      YES unset  up                    up
GigabitEthernet1/3     unassigned      YES unset  up                    up
^^^^ END netmiko_send_command ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* AS2.cc ** changed : False ***************************************************
vvvv netmiko_send_command ** changed : False vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv INFO
Interface              IP-Address      OK? Method Status                Protocol
GigabitEthernet0/0     unassigned      YES unset  up                    up
GigabitEthernet0/1     unassigned      YES unset  up                    up
GigabitEthernet0/2     unassigned      YES unset  up                    up
GigabitEthernet0/3     10.0.0.244      YES manual up                    up
GigabitEthernet1/0     unassigned      YES unset  up                    up
GigabitEthernet1/1     unassigned      YES unset  up                    up
GigabitEthernet1/2     unassigned      YES unset  up                    up
GigabitEthernet1/3     unassigned      YES unset  up                    up
Vlan1                  unassigned      YES manual administratively down down
^^^^ END netmiko_send_command ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

网络管理自动化 - nornir 3.0 入门(1)相关推荐

  1. 网络设备自动化运维工具——Nornir3.0.0入门笔记

    Nornir概述: 官方网站:https://nornir.readthedocs.io/en/latest/ Nornir是Netmiko的高级封装,天生实现支持多线程并发,并且可与python一起 ...

  2. python自动化运维快速入门pdf下载_我爱电子书-《Python自动化运维快速入门》| pdf + epub + mobi + awz3, 高清版, 带目录,Kindle版, 多看精排版下载...

    Python自动化运维快速入门 豆 0.0分 资源最后更新于 2020-03-29 01:00:08 作者:郑征 出版社:出版社清华大学出版社 出版日期:2019-04 ISBN:9787302525 ...

  3. air调用java,AIR2.0入门教程:与Java应用交互

    在之前的一篇文章中,我介绍了如何使用AIR2.0新增的NativeProcess类与本地进程进行交互和通讯,在那个例子里面我们使用了C++ 的代码,实际上只要是基于命令行的标准输入输出,AIR2.0的 ...

  4. 暑假想打比赛,小白怎么从0入门?

    小白怎么从0入门打比赛?(文末有GPU福利~) 第一步先解决赛题选择的问题:什么样的比赛适合你入门? 我建议想打比赛的同学首先想明白一件事--你想从事什么方向?人的精力是有限的,与其面面俱到,不如在1 ...

  5. C# 3.0入门系列

    目录导航 1 C# 3.0 入门系列(一) 从linq开始引C# 3.0. 2 C# 3.0入门系列(二) 数据库的准备,引入Linq To Sql的准备. 3 C# 3.0入门系列(三) 第一个Li ...

  6. C#3.0入门系列(五)-之Where操作

    从本节开始,本文正式更名为C#3.0入门系列.先发布一则消息,VS2007 Beta版本已经发布咯,下载地址: http://www.microsoft.com/downloads/details.a ...

  7. WF4.0入门系列1——创建一个简单的工作流

    WF4.0入门系列1--创建一个简单的工作流 打开VS2010,选择文件-新建-项目,选择Workflow项 工作流台应用程序,在名称处输入chapter01,选择合适的位置,这里默认,单击确定. V ...

  8. pip更新失败_最全Tensorflow2.0 入门教程持续更新

    最全Tensorflow 2.0 入门教程持续更新: Doit:最全Tensorflow 2.0 入门教程持续更新​zhuanlan.zhihu.com 完整tensorflow2.0教程代码请看ht ...

  9. creo如何更改打开时显示方式_Creo4.0入门教程(3):设置工作目录和打开以及保存文件...

    原标题:Creo4.0入门教程(3):设置工作目录和打开以及保存文件 目标: 1.设置工作目录 2.文件的打开和保存 1.设置工作目录 工作目录是打开和保存文件的指定位置.通常默认工作目录为启动 Cr ...

最新文章

  1. pythonif语句缩进_Python中多行IF语句缩进的代码样式?
  2. (转)C#创建数字证书并导出为pfx,并使用pfx进行非对称加解密
  3. Entity Framework简介
  4. 2009-12-12
  5. 关于VS2012连接MySql数据库时无法选择数据源
  6. python学习高级篇(part3)--MRO
  7. 黑马训练营自学笔记(03)
  8. DOM-14 【实战】解决事件代理和鼠标移动事件的窘态
  9. 大型布线:Java云应用程序缺少的技术
  10. python打印网页成pdf_vue中将网页打印成pdf
  11. office2010出现“此错误通常是由宏安全性设置造成的”的解决办法
  12. 过拟合产生的原因有哪些
  13. jquery ajax 回调函数里面再执行ajax函数,jQuery AJAX 和其回调函数
  14. js 对象中,可枚举性(enumerable)是什么?
  15. 期货CTP接口C++源码与C#应用程序的对接
  16. 泪滴(teardrop)
  17. Mac 鼠标卡顿现象
  18. linux 7分区 fdisk,CentOS7创建逻辑卷,fdisk分区方式。
  19. android extra_shortcut_icon,Android自动创建shortcut
  20. android开发adapter赋值问题

热门文章

  1. Azure | AZ-204 认证之旅-ASP VS ASE
  2. 版本 87.0.4280.66_没有对比没有伤害,全新惠普战66二代这些动人细节你Get到了吗?...
  3. linux上mysql允许远程连接,linux下mysql允许远程连接
  4. 支气管肺炎小叶肺炎(转)
  5. C语言五子棋游戏for Windows
  6. python面试知识点—基础篇
  7. 全球与中国增强现实远程协助软件市场现状及未来发展趋势
  8. OCR 识别数据集、统计脚本总结供下载
  9. HINT: Add or change a related_name argument to the definition for ‘User.user_permissions‘ or ‘User.u
  10. 网站域名在腾讯云备案可以使用阿里云服务器吗?