多供应商库简化paramiko ssh到网络设备的连接

netmiko的Python项目详细描述


PyPI - Python VersionPyPIDownloadsGitHub contributorsCode Style

netmiko

多供应商库可简化paramiko ssh到网络设备的连接

快速链接

支持的平台

netmiko支持多种设备。这些设备分为三类:

  • 定期测试
  • 有限测试
  • 实验性

定期测试意味着在每次NetMiko发布之前,我们都会尝试对这组设备运行完整的测试套件。

有限的测试意味着配置和显示操作系统测试在某个时间点通过了该平台上的测试,因此我们对驾驶员应该正常工作感到相当舒服。

实验意味着我们审查了pr和驱动程序似乎是合理的,但是我们没有很好的数据来证明驱动程序是否完全通过了单元测试,或者它的工作有多可靠。

单击PLATFORMS查看所有受支持平台的列表。

安装

要安装netmiko,只需使用pip:

$ pip install netmiko

netmiko有以下要求(pip将为您安装哪个)

  • paramiko=2.4.3
  • scp>;=0.13.2
  • pyserial
  • textfsm

教程/示例/入门

教程:

脚本示例:

请参阅下面的example scripts目录,包括以下示例:

开始:

创建表示设备的字典。

支持的设备类型可以在ssh_dispatcher.py中找到,请参阅类映射器键。

fromnetmikoimportConnectHandlercisco_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#

常见问题/常见问题解答

一些common questions的答案

上述文件中涉及的主题:

  • 处理提示其他输入的命令
  • 启用记录通信信道的所有读/写操作
  • 重新发现—或通过终端服务器连接

API文档

API Documentation

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

textfsm集成

netmiko已配置为自动在~/ntc-template/templates/index中查找ntc模板索引文件。或者,您可以通过设置NET_TEXTFSM环境变量显式地告诉netmiko在哪里查找textfsm模板目录(注意,该目录中必须有一个索引文件):

export NET_TEXTFSM=/path/to/ntc-templates/templates/

More info on TextFSM and Netmiko

贡献

欢迎投稿!你可以通过多种方式向Netmiko做出贡献:传播关于“反编译”的单词,回答“松弛”问题(参见下面的任务/讨论),回答问题,添加常见问题,报告/修复bug,甚至添加自己的设备类型。

在提供新的供应商/平台设备类型之前,请记住,任何添加的代码都需要以某种方式得到支持(对于“定期测试”的设备和netmiko的核心更是如此)!要添加供应商/平台,可以按照大纲here。一旦完成了驱动程序的第一次传递并使其正常工作,就需要包含测试数据,以便将其合并到develop中,您可以看到如何执行该操作的一般流程here

对于所有代码贡献,请确保已对代码运行black,否则代码将使travis ci生成失败。

问题/DIS讨论

如果您发现netmiko有问题,那么您可以在这里的projects问题页上打开一个问题:https://github.com/ktbyers/netmiko/issues。在打开问题之前,请确保您已经阅读了常见问题和示例。请仅为bug、功能请求或其他与netmiko开发相关的主题打开问题。如果你有任何问题,请加入我们…

如果您有问题或想讨论NETMIKO,则在{36}工作空间中存在一个NETMIKO通道。若要加入,请使用this invitation。一旦进入工作区,就可以加入netmiko频道。


柯克拜尔斯
网络工程师的python
https://pynet.twb-tech.com

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java AfterburnerFX加载错误文件xyz。未找到fxml,正在尝试使用驼峰案例   java如何灵活地使用通用对象?   JAVA JPA保存到TSV而不是SQL   java关闭当前窗口并弹出上一个窗口(windowListener)   java删除\删除绑定对象   java构造函数。newInstance()在JUnit和实际运行时中的行为不同   java将字符串中的字符翻转到字母顺序   如何让java等待事件?   使用Flyway的java MySQL JDBC驱动程序   java ImageAdapter从HashMap put方法返回NullPointerException   java Camel:找不到restlet bean   java Gradle下载源依赖项   POST方法Spring和Thymeleaf中的java编码问题   用于管理后台作业的java Spring兼容机制   java在连续发送25MB文件5到10次的同时,我通过javamail收到以下异常   java应用程序在试图更改重新加载的片段中的FloatingActionButton的状态时不断崩溃   运行小程序时出现java Magic value错误   java如何使用jdbc连接将excel工作表中的数据存储到mysql数据库   Eclipse,来自src的Java。文件夹?