【拳打Ansible,脚踢Puppet】Nornir宝典2023新编——基础篇(拳打脚踢音效mp3)

足球玩法 39℃

本文主要介绍基于Python的网络自动化运维框架Nornir,它灵活且强大,无需繁琐的DSL语言,只需要写好Python即可实现非常丰富的功能,在网络自动化领域不断开花结果。本人之前系统介绍过Nornir,受限于时间和精力,之前的篇章有些地方没有讲得很细,而这次,耗时两个月,打造的新版本Nornir教程覆盖范围广,内容更细致,且将常用插件做了介绍,同时又辅助以大量代码和几个实战示例详解,相信会给大家不同的感受。由于内容总体已经达到4万字左右,故分为三个篇章发表,本次发表的是基础篇。为区别老版本,突出新字,故命名为《Nornir宝典2023新编》

本篇1.7万余字,耗时估计会很长,建议收藏后反复观看,适用于已经掌握Python且具备Netmiko、TextFSM、Jinja2等提高内容的网络工程师。

NetDevOps学习指南,请参考文章:

九净:【v221024】从零开始NetDevOps,网络自动化入坑指南97 赞同 · 14 评论文章

第六章 NetDevOps专属自动化运维框架Nornir

6.1 Nornir简介

提起自动化运维框架,大家可能会想到ansible、puppet等系统运维开发相关的自动化框架,ansible、puppet等也有对网络设备的相关功能支持。

但是大家在实际使用中会发现,它们支持的网络设备比较有限,以ansible为例,它支持思科、Juniper等国外主流设备,国内的支持华为的CE交换机系列,且部分功能模块对设备的软件版本还有一定要求。有人说ansible支持扩展,可以编写自己的插件或者模块,实际情况是编写难度较大,调试比较麻烦,对编程能力要求比较高。另外,在执行效率上而言,也被国内外的某些用户所诟病。所以整体而言,在国产化大趋势之下、海量网络厂商的背景之下,即使它号称支持无侵入的SSH连接,理论上支持的设备应该很多,而实际使用之下,我们会发现情况并不容客观。

所以NetDevOps工程师也希望有一款对网络运维自动化开发有帮助的自动化运维的开发框架。

我们为什么需要自动化运维的开发框架呢?它可以更好地组织我们的代码,让我们聚焦于一个功能模块的开发,借助于框架的一些设计,我们只需按要求写一些模块或者函数即可实现我们的需求及功能。它内置了很多基础的功能,比如帮助我们管理网络主机(host),帮助我们管理到主机的连接(connection),帮助我们去批量并发执行相关任务。

随着NetDevOps技术的不断发展,属于网络专属的自动化运维开发框架Nornir也应运而生!

_images/nornir_logo_02.jpg

6.1.1 初识Nornir

Nornir是一个用Python编写的自动化框架,主要是针对网络运维自动化,只要你懂Python,就可以非常方便的使用Nornir了,其官方网站是https://nornir.tech/

由于Nornir允许用户使用纯Python代码,所以我们可以使用与其他Python代码相同的方法对其进行故障排除和调试,这就解决了那些低代码的自动化工具的调试和排障困难的问题。

Nornir自比是自动化界的Flask,侧面反映它的强大与灵活。Flask是一个Python的web开发框架,Flask留给了用户很多自由发挥的空间,所以用户可以基于恰到好处的接口,用自己喜欢的方式构建一个功能强大的web

标签: