P叔带你学Python-36-多厂商网络设备自动化管理库Netmiko

【Python】Netmiko: 简便的 Python 自动化网络管理工具 Netmiko 是一款Python 库,被广泛用于自动化网络设备管理任务。作为一个重要的开源库,它通过简化与网络设备的TCP连接,实现了快速执行相关任务的能力。Netmiko 基于Paramiko库的基础架构,支持所以的网络设备,包括Cisco, Juniper, Arista等。它提供了连接网络设备并执行特定任务的接口,例如SSH, Telnet以及串口这些网络协议的相关处理。 阅读详情

Python Netmiko是一个基于Paramiko的多厂商网络设备自动化管理库,支持SSH和Telnet协议,并能够支持多种厂商的网络设备,例如Cisco、Juniper、Arista、HP等。

本文将介绍Python Netmiko的基本用法和几个示例,包括连接设备、发送命令和配置设备等。
在这里插入图片描述
安装

使用pip安装Python Netmiko:

pip install netmiko   

连接设备

from netmiko import ConnectHandler      # 设备连接信息   device = {       'device_type': 'cisco_ios',       'ip': '192.168.1.1',       'username': 'admin',       'password': 'admin',   }      # 连接设备   conn = ConnectHandler(**device)      # 断开连接   conn.disconnect()   

上述代码使用了ConnectHandler方法来连接Cisco IOS设备。其中,device_type参数用于指定设备的类型,ip参数指定设备的IP地址,username和password参数指定连接设备所需的用户名和密码。**device参数表示将device字典中的所有键值对解包并作为参数传递给ConnectHandler方法。

发送命令

from netmiko import ConnectHandler      device = {       'device_type': 'cisco_ios',       'ip': '192.168.1.1',       'username': 'admin',       'password': 'admin',   }      # 连接设备   conn = ConnectHandler(**device)      # 发送命令   output = conn.send_command('show interface GigabitEthernet0/0/0')   print(output)      # 断开连接   conn.disconnect()   

在上述代码中,我们使用send_command方法向设备发送命令。该方法返回设备返回的输出内容,并将其存储在output变量中。

配置设备

from netmiko import ConnectHandler      device = {       'device_type': 'cisco_ios',       'ip': '192.168.1.1',       'username': 'admin',       'password': 'admin',   }      # 连接设备   conn = ConnectHandler(**device)      # 配置设备   config_commands = ['interface GigabitEthernet0/0/0', 'ip address 192.168.1.2 255.255.255.0']   output = conn.send_config_set(config_commands)   print(output)      # 保存配置   output = conn.save_config()   print(output)      # 断开连接   conn.disconnect()   

在上述代码中,我们使用send_config_set方法向设备发送配置命令。该方法将列表中的命令发送到设备,并返回设备返回的输出内容。然后,我们使用save_config方法保存配置更改。

批量配置

from netmiko import ConnectHandler   from getpass import getpass      password = getpass()      with open('devices.txt') as f:       devices = f.read().splitlines()      for ip in devices:       device = {           'device_type': 'cisco_ios',           'ip': ip,           'username': 'admin',           'password': password,           'port': 22,       }       ssh = ConnectHandler(**device)       config_commands = ['interface loopback 1', 'ip address 1.1.1.1 255.255.255.255']       output = ssh.send_config_set(config_commands)       print(output)       ssh.disconnect()   

上述代码展示了如何使用Netmiko连接到多个设备,并批量执行配置命令。在本例中,从devices.txt文件读取IP地址,并使用相同的用户名和密码连接到设备。然后,使用send_config_set方法发送配置命令,并打印输出。

使用Netmiko子类

from netmiko import ConnectHandler   from netmiko.cisco import CiscoIosBase      class MyDevice(CiscoIosBase):       def backup_running_config(self):           filename = f"{self.host}-running-config.txt"           command = "show running-config"           output = self.send_command(command)           with open(filename, 'w') as f:               f.write(output)      device = {       'device_type': 'cisco_ios',       'ip': '10.0.0.1',       'username': 'admin',       'password': 'password',       'port': 22,   }      ssh = MyDevice(**device)   ssh.backup_running_config()   ssh.disconnect()   

上述代码展示了如何使用Netmiko的子类来扩展其功能。在本例中,创建了一个名为MyDevice的子类,并添加了一个备份running-config的方法。然后,使用MyDevice类连接到设备,调用backup_running_config方法,并断开连接。

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。img

img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述​
使用python netmiko模块批量配置Cisco、华为、H3C路由器交换机(支持 telnet 和 ssh 方式) 使用python(版本3.8.5)下的netmiko模块批量配置Cisco、华为、H3C路由器和交换机,可以支持telnet方式和ssh方式连接设备。 阅读详情

相关推荐

全网最全Python netmiko库实现自动化备份网络设备配置、路由、cpu、内存、电源等

文章目录前言一、netmiko 4.1.0版本安装二、自动化备份代码讲解1.目录结构2.完整代码详解3.netmiko支持设备三、参考资料1.Python官方netmiko库2.Github官方netmiko库三、exe脚本下载 前言 余生平,怎一个懒字了得。 小白Python自动化运维随笔(懒人专属)。 Python版本3.9.12 一、netmiko 4.1.0版本安装 进入CMD,输入下记命令进行安装 pip install netmiko==4.1.0 查看pip安装的组件列表命令 pip

lishengdong_1995的博客 8851

Python自动化运维实战——Telnetlib和Netmiko自动化管理网络设备

本期小i为大家带来了关于Python自动化运维的技术——利用Python进行网络设备的自动化管理。话不多说,直接上干货!Telnetlib模块是Python提供的可用于Telnet连接使用的模块,值得注意的是,在现有的生产环境中,Telnet协议连接已经使用的较为少见了(原因也非常简单,Telnet协议是明文传输的协议,所以在数据传输,尤其是在公网上传输的时候极其不安全)。​且telnetlib已逐渐弃用,并计划在Python 3.13 版本中删除。

qinjilll的博客 6647

P叔带你学Python-36-多厂商网络设备自动化管理库Netmiko_python netmiko

Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

2301_82244125的博客 1059

最强Netmiko攻略疑难杂症篇

如果最后循环结束,计数器肯定是大于循环次数的,这说明是程序超时未收到提示符。netmiko底层在发送命令从隧道中读取回显,这时的数据都是字节流,netmiko会强制以utf8字符集解码保存,而很多国产设备字符集可能使用的非UTF8,在用英文的配置时,这些字符集是兼容的,但当使用中文的时候字符集不兼容,而netmiko 3.4.0及以前版本(即使是4.X的版本也存在,笔者已经提交过issue,netmiko作者已经修改,目前在还没稳定版发布)会强制使用UTF8解码,最终导致中文部分的配置会出现乱码。

xdy762024688的博客 3210

网络基础与核心技术解析:从协议栈到实践应用

计算机网络是现代信息系统的基石,其核心是TCP/IP协议栈的分层架构。从底层的物理传输到顶层的应用协议,每层都有特定的功能和技术实现。IP地址作为网络层的逻辑寻址方案,与MAC地址共同构成了设备通信的基础。传输层的TCP协议通过三次握手确保可靠传输,而UDP则提供高效的无连接服务。在实际网络工程中,交换机和路由器分别基于MAC和IP地址进行数据转发,防火墙则通过状态检测保护网络安全。随着SDN和网络虚拟化技术的发展,自动化配置和云网络架构正在重塑传统网络管理模式。掌握这些网络基础知识,对于构建企业级网络架构

weixin_33736649的博客 435

Python使用netmiko配置华为交换机

1.netmiko就是专门为网络设备做的模块,非常强大。1.更适合网络设备的自动化运维模块。2、批量配置变更、备份。1.安装netmiko。2. 创建SSH连接。一、netmiko介绍。

博然的宝藏库 2797

「Python 网络自动化」Netmiko ——Python 使用 Netmiko 连接 H3C 网络设备

之前文章在 netmiko 中使用 TextFSM中潦草说了一下如使用 textfsm,并未提及 netmiko。 我在学习过程中一直没有系统的输出笔记以及文档,现在借文章分享来倒逼一下自己输出,重新学习 netmiko。 文章目录什么是 Netmiko如何使用安装使用基本使用方法执行多条命令登录设备后发生了什么?send_commandsend_config_set支持的设备列表 什么是 Netmiko 是一个基于 paramiko 二次封装的,可以通过 SSH 连接多种网络设备的库,大约从 3.0 版本

某呆 8024

基于 Netmiko 的网络设备自动化操作

Netmiko 是一个基于 Python 的多厂商网络设备连接库,封装了 SSH/Telnet 协议,简化了与网络设备(如路由器、交换机、防火墙)的交互流程。

漫谈网络 3256

「Python 网络自动化」Netmiko ——Netmiko 常用方法

python 网络自动化 netmiko 常用方法 send_command_timing

某呆 8645

如何使用 Python 和 Netmiko 自动创建网络设备 VLAN,受益颇深!

你好,这里是网络技术联盟站,我是瑞哥。在现代网络中,自动化是网络管理的重要一环。通过使用Python编程语言和Netmiko库,我们可以简化并提高VLAN(Virtual Local Area Network)的创建过程。VLAN允许我们将网络设备划分为逻辑上的独立网络,提高网络的性能、安全性和管理效率。在开始自动执行VLAN创建之前,我们需要进行一些准备工作,确保系统处于适当的状态。

网络技术联盟站 1430

【信息科学与工程学】【通信工程】第八十六篇 通信网络设备及通信网络组网的所有学科知识01

编号001类型网络虚拟化与覆盖技术网络领域数据中心网络子领域大二层网络 / 网络虚拟化核心数学方程式/算法模型核心算法:VXLAN封装与解封装。关键在于24位VNI(虚拟网络标识符)到物理网络的三层IP地址的映射。封装:收到原始以太帧后,为其添加 VXLAN 头部(含 VNI)、外层 UDP 头(目的端口 4789)、外层 IP 头(源 IP 为本地 VTEP IP,目的 IP 为对端 VTEP IP)以及外层 MAC 头。解封装:对端 收到报文后,剥离外层头部,根据内层帧的目的 MAC 和 VNI 进行二

weixin_49199313的博客 844

使用netmiko模块实现Python自动化运维

使用netmiko模块实现Python自动化运维

weixin_45590433的博客 1826

Netmiko:简化网络设备自动化的强大工具

Netmiko是一个基于Python的多厂商网络设备SSH连接库。它的主要目标是简化与网络设备的SSH连接过程,提供一个统一的接口来管理各种不同类型的网络设备。Netmiko是一个强大而灵活的工具,能够大大简化网络自动化任务。它不仅支持广泛的设备类型,还提供了丰富的功能来处理各种网络操作场景。通过本文介绍的基本用法、高级技巧和实际案例,您应该能够开始使用Netmiko来提高网络管理效率。随着网络规模的不断扩大和复杂性的增加,像Netmiko这样的自动化工具将变得越来越重要。

探索云原生与智能化驱动下的安全运维新范式。关注DevSecOps、可观测性、AIOps等前沿领域,与您共赴技术前沿。 1493

网络自动化01:netmiko基础、netmiko简单demo

网络设备的配置,我们一般都是采用CLI的方式,通过Console、Telnet、SSH登录到设备,然后执行需要的命令。让机器以机器的方式完成操作(一般用API)让机器模拟人的方式完成操作以目前的设备来说,支持API、同时有比较完善生态的网络设备不多,同时价格比较昂贵(我个人认为可以类比支持SDN的设备)。所以选用让机器模拟人的方式完成操作这个方案是在网络自动化中比较常见的。实际上,这就是让我们的脚本通过远程登陆(SSH、Telnet)等方式登陆到设备,然后发送命令即可。

Tassel_YUE的博客 2185

netmiko安装及使用

对设备进行操作之前首先要登录到设备,这个时候需要借助ConnectHandler,(命名风格是大驼峰命名法),它返回的是到网络设备的一个长连接对象。with上下文管理器的本质是创建对象后调用了对象_enter_,代码块结束的时候自动帮助我们调用with管理器的对象_exit_上段代码我们还可以采用将参数赋值的方式进行,调用ConnectHandler函数的时候,将这个字典前加双星号**传入。连接驱动类实例化所需参数主要包括创建ssh连接所需的设备IP、用户名、密码、连接端口号等等。

A soul tortured by desire 2676

Cisco网络自动化:Netmiko脚本集合实战指南

本文还有配套的精品资源,点击获取 简介:本文介绍了一个专门针对Cisco网络设备,使用Python的netmiko库编写的自动化脚本集合。该集合能够自动化地执行配置、诊断和管理任务,旨在提高网络管理和运维的效率。脚本集合包括了多样化的功能,涵盖了网络路由器和交换机的配置变更、故障排查和监控等方面。学习这些脚本可以提高网络工程师和DevOps从业者的自动化技能。 1...

weixin_36296444的博客 2650
上一篇: P叔带你学Python-35-开源自动化部署工具Fabric
下一篇: P叔带你学Python37-Telnet协议telnetlib模块
Python_P叔
博客等级 码龄3年 5453粉丝 827原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值