百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

【自动化运维初级村】Paramiko v Netmiko

off999 2024-09-18 22:33 45 浏览 0 评论

自动化运维,你玩转了吗?

【前言】

秉承着“最小化上手范围”的原则,相信大家经过新手村二十多个章节的学习,都已经对Python有了初步的了解,基础的学习必然是略显枯燥无聊的,但希望大家可以在“新手村”系列视频和文章的指导下有自己阅读程序,分析需求,编写程序,调试程序的基本技能。

以上也是进入初级村的最低门槛,如果还没有具备上述能力的朋友,衷心的希望你可以返回新手村进行学习,切勿囫囵吞枣,盲目求快。

【初级村包含的内容】

  1. Paramiko和Netmiko

两者的使用方式及优劣

  1. Python 正则解析

将通过SSH收集回来的各种信息进行正则解析

番外:Text-FSM解析

  1. Python SNMP

如何使用Python调用SNMP采集指令,并讲解OID使用方式

  1. NetConf

如何通过NetConf对网络设备进行操作

  1. Crontab并回调CMDB

如何设置定时执行SSH任务进行定期巡检,并更新回写CMDB

番外:Python Scheduler

  1. Flask Web框架

将SSH和NetConf与Web框架相结合,通过API方式或前端调用其执行

【摘要】

在自动化运维领域里面,单从服务器运维的角度来讲,由于可以提前对服务器做系统的定制安装,所以一些大厂会选择在装机时植入特定的Agent,以此实现远程控制服务器的目的。

不过对于大部分的公司,服务器运维或者网络设备运维都仍然依靠远程SSH这一方法,所以我们使用Python作为自动化运维的编程语言的话,就非常需要一个第三方包来实现这一功能,而Paramiko和Netmiko可以说是扛把子的角色。

相信看这个教程的朋友肯定都听过这两个工具包,但可能并不是所有的人都了解这两个包之间的关系。除此之外,网上五花八门的对于用哪个更好的争论也难以分辨。

那么这个章节就先给大家介绍一下这两个包的来龙去脉。

【OpenSSH】

介绍第三方库之前有必要先科普一下关于SSH的知识。

我们经常谈论的SSH是一个传输层协议,相比Telnet来说可以与远端设备建立更安全的连接通道,对传输的内容进行加解密处理,所以基于安全考虑,企业中几乎所有的对远程设备的连接都要求使用SSH连接

SSH协议有两种不兼容的版本:SSHv1和SSHv2。

那么设备想要支持SSH协议,就需要在设备上安装一个与之相匹配的服务端/客户端的应用程序,而OpenSSH就是目前使用最为广泛的SSH协议的开源实现。

对于较老的SSHv1,由于存在加密算法的专利问题和数据完整性的缺陷,OpenSSH已经删除了对其的支持。所以目前OpenSSH主要支持SSHv2

OpenSSH 套件包含以下工具:

    • 远程操作使用 ssh、 scp和 sftp完成。
    • 使用ssh-add、 ssh-keysign、 ssh-keyscan和 ssh-keygen 进行密钥管理 。
    • 服务端 sshd、 sftp-server和 ssh-agent组成。

整体的结构图如下所示

【Paramiko/Netmiko简介】

【Paramiko】

Paramiko遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接;模块本身使用Python语言编写和开发,只有像crypto这样的核心函数才会用到C语言。

Paramiko目前是Python中应用最广的SSH模块,大家耳熟能详的Ansible, Netmiko,Nornir,NAPALM其实都是用到了Paramiko来做SSH的实现,所以也可以从中看出,其实Paramiko的角色其实是Python语言里实现SSH功能的底层工具包

那么既然是底层工具包就必然为了具备完备的通用性而损失了易用性,而Paramiko过于底层的方法调用也是被网友最为诟病的原因。

但我们已经提到,Python想要实现SSH远程连接,就逃不开Paramiko,那么我们就非常有必要了解一下Paramiko的基本实现原理和主要的组成类

源码核心架构图

Paramiko中几个大的概念和相互之间的关系基本就是如上图所示了(一些身份认证类和其他杂类并没有包含其中,在学习初期也没有深究这些的必要)。

总体来说Paramiko的源码核心架构并不复杂,但对于使用该包的编程人员来说,暴露了太多底层细节。因为其最High-Level的类就是一个SSHClient对象,而一个SSHClient对象又必须通过创建Channel来完成数据的收发

所以说Paramiko其实就是一个实现了SSH功能的底层工具包,它可以连接任何兼容SSHv2的设备,包括:服务器,网络设备,打印机,甚至是监控摄像头,并且它最核心的功能就是:建立SSH连接 -> 发数据 -> 收数据

【Netmiko】

但看本系列的教程的朋友应该大多数都是具备网络运维背景的朋友,想实现一些网络运维中的自动化能力,那么平时所要面对的就都是网络设备,我这里推荐大家使用Netmiko

我们可以通过一个流程图来表示一下除了Paramiko本身的底层能力外,还需要哪些步骤才能完成一次与网络设备的交互。

交互流程图

从上述的流程图中可以看出,除了Paramiko支持的底层SSH连接与数据发送接收功能之外,我们想要与网络设备进行交互还需要诸多地方需要处理,而Netmiko正好可以提供以上这些功能,这也是我们为什么选择用Netmiko的原因

【总结】

其实网上有很多文章都有对Paramiko和Netmiko的对比,但大多数的解释都不够准确,并且还有很多直接通过代码来演示区别的,更是让一些编程基础不太好的朋友十分头疼,所以我希望大家可以通过这一章节,非常清晰的知道,两者之间的区别究竟有哪些。

这一章节并没有提到关于使用Paramiko或者Netmiko来进行连接设备的代码,但对Paramiko的源码核心架构做了介绍,这也是大家后续使用Netmiko必须要掌握的基础知识,并且对于Netmiko基于Paramiko的改进也通过流程图展示给大家,对后续的深入理解及二次开发会非常有帮助。

相关推荐

手机万能mp4转换器(手机万能mp4转换器下载)

1你需要先下载并安装一个叫格式工厂的软件。2然后打开->mp4。3点击添加文件的选项。4然后选择需要转换的视频,点击确定。5点击确定之后,再添加到转换列表中就可以。6再点...

迅雷beta官网(迅雷beta官方网)

若手机不能安装软件/游戏,建议:1.检查“未知来源”设置是否开启。2.查看下载的软件格式是否为机器所支持的。安卓系统手机支持的软件格式为.APK格式。3.下载软件时请阅读软件详情,查看是否对机器操作系...

私人家庭影院hd免费版游戏评测

《海上钢琴师》是由朱塞佩·托纳托雷执导,蒂姆·罗斯、比尔·努恩、梅兰尼·蒂埃里主演的剧情、音乐、爱情片。该片讲述了一个被命名为“1900”的弃婴在一艘远洋客轮上与钢琴结缘,成为钢琴大师的传奇故事。该片...

题库网(题库网站有哪些)

学科网的试卷有续费的和不需要交费的两类试卷,如果你是学科网的用户,可以下载试卷,还可以组卷,对于我们一线的老师来讲,这很方便的,只要学校肯出钱,在学科网前,全校的老师就可以注册免费试用学科,网上所有的...

类似迅雷的下载器有哪些(手机下载工具app)

推荐闪电下载和黑科技下载这两款APP手机上取代迅雷的下载器有闪电下载APP和黑科下载器APP等,以这两款为例,它们都是可以支持ed2k、磁力链等下载方式,也能够支持多种不同类似的文件的高速下载。、BT...

qq号申请免费注册官网(qq注册账号免费申请网址)

你好,通用的申请QQ号码的方法如下:1、首先打开腾讯官网。2、在腾讯页面左边的通信工具里面点击号码。3、点击号码以后就会进入QQ注册页面。4、进入QQ注册页面以后,在昵称后面输入要注册号码的名字。5、...

安卓安装windows(安卓安装apk解析包出错)

oppo手机支持安卓和Windows操作系统,但是双系统安装需要手机支持虚拟化技术(VT)。如果手机支持VT,可以在电脑上安装虚拟化软件,然后在手机上运行VT兼容的虚拟化应用程序,从而实现在电脑上安装...

安全中心下载(网易安全中心下载)

可以通过解除保护模式页面,查看QQ帐号进入保护模式的原因,及获取恢复QQ帐号正常使用的方法。点击小i,然后把自动登录选项去掉,打开safari,随便点一个网页,去登录。畅游经常这样抽风,可以关了游戏...

重装系统步骤(USB重装系统步骤)

正版的win10及以上系统,现在已经都自带系统重置功能,可以一键重置恢复到出厂设置。1.按住win+i,在弹出的windows设置对话框中,点击更新和安全选项,在弹出的设置对话框中,点击左侧的恢复选项...

qq群发软件手机版免费(qq群发软件安卓版免费下载)

分享一个可以免费试用的软件,“www.liaotiangou.com”在做微信营销的时候经常会需要使用到群发功能,出了多群群发之外,还有定时群发,甚至是定时发送朋友圈。多群群发可以解决以前最多只能群发...

小说排行榜2020前十名(耿美小说排行榜2020前十名)

1、元龙《元龙》是目前2020年哔哩哔哩国创动漫热门榜的第一名,讲述的是一名来自现代的王牌狙击手,穿越到了玄幻的元魂世界,从此展开的一系列热血的战斗与机遇,成为元魂世界的霸者的故事。2、灵笼《灵笼》是...

万能wifi密码查看器(wifi万能密码查看神器)

极速版Wifi的好。万能Wifi锁匙极速版的内存小,节约流量,操作简便,还可以连接手机在户外共享网络信息,是一款性价比很高的索要产品。不过要根据自己的实际情况做出正确的选择才好。首先需要一个安卓机,拿...

造梦西游5(造梦西游5论坛)

1、迅速做完主线任务和支线任务主线、支线任务存在于底部的【任务】里,要找对位置!任务上有【可接】两个字样,说明还没接受相应的任务!你看过一个【化世桥】就有接近10W的经验,何乐而不为,所以想尽快升级就...

office免费永久激活密钥(office免费永久激活密钥irm)

回答如下:Office2019永久激活密钥可以用于激活MicrosoftOffice2019产品,包括Word、Excel、PowerPoint、Outlook、Access、Publisher等...

可以加微信的交友软件(50至60岁交友微信群)

如果您想在寻爱APP中添加微信好友,可以按照以下步骤进行操作:1.打开寻爱APP,在APP主界面找到您想要添加好友的用户的信息。2.点击该用户的头像或昵称,进入该用户的详细资料页面。3.在详细资...

取消回复欢迎 发表评论: