跳转到主要内容

多厂商库,用于简化对网络设备的传统CLI连接

项目描述

PyPI - Python Version PyPI Downloads GitHub contributors Code Style

Netmiko

简化网络设备CLI连接的多厂商库


为Netmiko做贡献

CONTRIBUTING.md


为什么选择Netmiko?

网络自动化主要涉及从显示命令中收集输出和执行配置更改。

Netmiko旨在完成这两项操作,并且要在非常广泛的平台上完成。它试图通过抽象化底层状态控制(即尽可能消除底层正则表达式模式匹配)来实现这一点。


入门


示例

您真的应该看看这里。


支持的平台

PLATFORMS


安装

要安装netmiko,只需使用pip

$ pip install netmiko

API文档

API文档


常见问题/FAQ

对一些常见问题的答案


教程


入门

创建代表设备的字典。

支持的device_types可以在ssh_dispatcher.py中找到,请参阅CLASS_MAPPER键。

from netmiko import ConnectHandler

cisco_881 = {
    'device_type': 'cisco_ios',
    'host':   '10.10.10.10',
    'username': 'test',
    'password': 'password',
    'port' : 8022,          # optional, defaults to 22
    'secret': 'secret',     # optional, defaults to ''
}

通过传递设备字典建立到设备的SSH连接。

net_connect = ConnectHandler(**cisco_881)

执行显示命令。

output = net_connect.send_command('show ip int brief')
print(output)
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0              unassigned      YES unset  down                  down
FastEthernet1              unassigned      YES unset  down                  down
FastEthernet2              unassigned      YES unset  down                  down
FastEthernet3              unassigned      YES unset  down                  down
FastEthernet4              10.10.10.10     YES manual up                    up
Vlan1                      unassigned      YES unset  down                  down

执行配置更改命令(将自动进入配置模式)

config_commands = [ 'logging buffered 20000',
                    'logging buffered 20010',
                    'no logging console' ]
output = net_connect.send_config_set(config_commands)
print(output)
pynet-rtr1#config term
Enter configuration commands, one per line.  End with CNTL/Z.
pynet-rtr1(config)#logging buffered 20000
pynet-rtr1(config)#logging buffered 20010
pynet-rtr1(config)#no logging console
pynet-rtr1(config)#end
pynet-rtr1#

API文档

API文档

以下是一些特别方便的类/函数,方便参考


贡献

欢迎贡献者。

您可以通过多种方式为 Netmiko 做出贡献:在 Slack 上回答问题(见下文中的问题/讨论),响应问题,添加到常见问题,报告/修复错误,甚至添加您自己的设备类型。

在贡献新的厂商/平台设备类型之前,请记住,添加的任何代码都需要以某种形式得到支持。要添加厂商/平台,您可以参考以下链接中的概述 此处。一旦您完成了您的驱动程序的第一遍工作并且使其功能正常,您需要包含测试数据以便将其合并到 develop,您可以在以下链接中查看如何操作的通用流程 此处

对于所有代码贡献,请确保您已运行 black 对代码进行测试,否则您的代码将无法通过 Travis CI 构建。


问题/讨论

如果您发现 Netmiko 存在问题,则可以在本项目的 issue 页面上打开问题:https://github.com/ktbyers/netmiko/issues。请确保您已阅读过常见问题和示例,然后再打开问题。请只打开有关错误、功能请求或其他与 Netmiko 开发相关的问题。如果您只是有问题,请加入我们的 Slack...

如果您有疑问或想讨论 Netmiko,则可以在以下 Slack 工作区中找到 #netmiko 频道:此工作区。要加入,请使用以下链接:此邀请。一旦您进入工作区,就可以加入 #netmiko 频道。


Kirk Byers
网络工程师的 Python
https://pynet.twb-tech.com

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

netmiko-4.4.0.tar.gz (151.3 kB 查看哈希值)

上传时间

构建分布

netmiko-4.4.0-py3-none-any.whl (232.2 kB 查看哈希值)

上传于 Python 3