0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

介绍Python Netmiko的基本用法和几个示例

网络技术干货圈 来源:网络技术干货圈 2023-04-28 09:56 次阅读

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

本文将介绍Python Netmiko的基本用法和几个示例,包括连接设备、发送命令和配置设备等。

安装

使用pip安装Python Netmiko:

pipinstallnetmiko

连接设备

fromnetmikoimportConnectHandler

#设备连接信息
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方法。

发送命令

fromnetmikoimportConnectHandler

device={
'device_type':'cisco_ios',
'ip':'192.168.1.1',
'username':'admin',
'password':'admin',
}

#连接设备
conn=ConnectHandler(**device)

#发送命令
output=conn.send_command('showinterfaceGigabitEthernet0/0/0')
print(output)

#断开连接
conn.disconnect()

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

配置设备

fromnetmikoimportConnectHandler

device={
'device_type':'cisco_ios',
'ip':'192.168.1.1',
'username':'admin',
'password':'admin',
}

#连接设备
conn=ConnectHandler(**device)

#配置设备
config_commands=['interfaceGigabitEthernet0/0/0','ipaddress192.168.1.2255.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方法保存配置更改。

批量配置

fromnetmikoimportConnectHandler
fromgetpassimportgetpass

password=getpass()

withopen('devices.txt')asf:
devices=f.read().splitlines()

foripindevices:
device={
'device_type':'cisco_ios',
'ip':ip,
'username':'admin',
'password':password,
'port':22,
}
ssh=ConnectHandler(**device)
config_commands=['interfaceloopback1','ipaddress1.1.1.1255.255.255.255']
output=ssh.send_config_set(config_commands)
print(output)
ssh.disconnect()

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

使用Netmiko子类

fromnetmikoimportConnectHandler
fromnetmiko.ciscoimportCiscoIosBase

classMyDevice(CiscoIosBase):
defbackup_running_config(self):
filename=f"{self.host}-running-config.txt"
command="showrunning-config"
output=self.send_command(command)
withopen(filename,'w')asf:
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方法,并断开连接。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • iOS
    iOS
    +关注

    关注

    8

    文章

    3395

    浏览量

    150566
  • SSH
    SSH
    +关注

    关注

    0

    文章

    188

    浏览量

    16335
  • python
    +关注

    关注

    56

    文章

    4792

    浏览量

    84628

原文标题:网络工程师学Python-36-多厂商网络设备自动化管理库Netmiko

文章出处:【微信号:网络技术干货圈,微信公众号:网络技术干货圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    erode函数用法示例

    《OpenCV3编程入门》书本配套源代码erode函数用法示例
    发表于 06-06 15:09 1次下载

    bilateralFilter函数用法示例

    《OpenCV3编程入门》书本配套源代码bilateralFilter函数用法示例
    发表于 06-06 15:20 6次下载

    canny函数用法示例

    《OpenCV3编程入门》书本配套源代码canny函数用法示例
    发表于 06-06 15:20 3次下载

    HoughLines函数用法示例

    《OpenCV3编程入门》书本配套源代码:HoughLines函数用法示例
    发表于 06-06 15:20 3次下载

    MedianBlur函数用法示例

    《OpenCV3编程入门》书本配套源代码:MedianBlur函数用法示例
    发表于 06-06 15:20 14次下载

    GaussianBlur函数用法示例

    《OpenCV3编程入门》书本配套源代码:GaussianBlur函数用法示例
    发表于 06-06 15:20 5次下载

    remap函数用法示例

    《OpenCV3编程入门》书本配套源代码:remap函数用法示例
    发表于 06-06 15:20 2次下载

    sobel函数用法示例

    《OpenCV3编程入门》书本配套源代码:sobel函数用法示例
    发表于 06-06 15:20 2次下载

    pyrUp函数用法示例

    《OpenCV3编程入门》书本配套源代码:pyrUp函数用法示例
    发表于 06-06 15:20 1次下载

    pyrDown函数用法示例

    《OpenCV3编程入门》书本配套源代码:pyrDown函数用法示例
    发表于 06-06 15:20 16次下载

    Scharr函数用法示例

    《OpenCV3编程入门》书本配套源代码:Scharr函数用法示例
    发表于 06-06 15:20 14次下载

    python代码示例之基于Python的日历api调用代码实例

    本文档的主要内容详细介绍的是python代码示例之基于Python的日历api调用代码实例。
    发表于 09-06 14:25 42次下载
    <b class='flag-5'>python</b>代码<b class='flag-5'>示例</b>之基于<b class='flag-5'>Python</b>的日历api调用代码实例

    TensorRT的Python API的基本用法和接口解析

    本章说明 Python API 的基本用法,假设您从 ONNX 模型开始。 onnx_resnet50.py示例更详细地说明了这个用例。
    的头像 发表于 05-13 15:46 4148次阅读

    Python常用的几个命令介绍

    Python是一种功能强大的编程语言,广泛用于数据分析、人工智能和Web开发等领域。在使用Python时,需要掌握一些基本的命令,以便更好地管理和运行代码。下面将介绍Python常用的
    的头像 发表于 06-21 17:12 2342次阅读

    split在python中的用法

    split在python中的用法 split()是Python中一个非常常用的字符串函数,它能够根据指定的分隔符将一个字符串分割成多个子字符串,并返回一个包含这些子字符串的列表。本文将详细介绍
    的头像 发表于 12-25 15:12 2018次阅读