Skip to main content

NETCONF 客户端的 Python 库

项目描述

ncclient 是一个 Python 库,可促进围绕 NETCONF 协议的客户端脚本和应用程序开发。ncclientShikar Bhushan <http://schmizz.net>开发。它现在由Leonidas Poulopoulos (@leopoul) <http://ncclient.org>Einar Nilsen-Nygaard (@einarnn) 维护

文档: http: //ncclient.readthedocs.org

Github: https ://github.com/ncclient/ncclient

要求:

  • Python 2.7 或 Python 3.4+

  • 设置工具 0.6+

  • 帕拉米科 1.7+

  • lxml 3.3.0+

  • libxml2

  • libxslt

如果您使用的是 Debian/Ubuntu,请安装以下库(通过 aptitude 或 apt-get):

  • libxml2-dev

  • libxslt1-dev

安装:

[ncclient] $ sudo python setup.py install

或通过点子:

pip install ncclient

例子:

[ncclient] $ python examples/juniper/*.py

用法

获取设备运行配置

使用交互式 Python 控制台 (ipython) 或在代码中集成以下内容:

from ncclient import manager

with manager.connect(host=host, port=830, username=user, hostkey_verify=False) as m:
    c = m.get_config(source='running').data_xml
    with open("%s.xml" % host, 'w') as f:
        f.write(c)

从 0.4.1 起,ncclient 集成了瞻博网络和思科的分支,引入了许多新概念,分别简化了瞻博网络和思科设备的管理。最大的变化是在连接参数中引入了设备处理程序。例如,要调用 Juniper 的函数和参数,必须使用device_params={'name':'junos'}重写上述内容 :

from ncclient import manager

with manager.connect(host=host, port=830, username=user, hostkey_verify=False, device_params={'name':'junos'}) as m:
    c = m.get_config(source='running').data_xml
    with open("%s.xml" % host, 'w') as f:
        f.write(c)

设备处理程序易于实施并被证明是面向未来的。

支持的设备处理程序

  • 瞻博网络:device_params={'name':'junos'}

  • 思科:
    • 企业社会责任:device_params={'name':'csr'}

    • Nexus:device_params={'name':'nexus'}

    • IOS XR:device_params={'name':'iosxr'}

    • IOS XE:device_params={'name':'iosxe'}

  • 华为:
    • device_params={'名称':'华为'}

    • device_params={'name':'huaweiyang'}

  • 诺基亚 SR 操作系统:device_params={'name':'sros'}

  • H3C:device_params={'name':'h3c'}

  • HP Comware:device_params={'name':'hpcomware'}

  • 服务器或上面没有的任何东西:device_params={'name':'default'}

变化 | 简短的

v0.6.12

  • 修复了 Juniper ExecuteRPC 支持的意外损坏

v0.6.11

  • 支持自定义客户端功能

  • 重构/重构示例脚本

  • 修正了一些小错误

  • 次要单元测试重构

v0.6.10

  • NETCONF 回拨 (RFC8071) 支持

  • YANG 1.1动作支持

  • 诺基亚 SR OS 设备处理程序支持

  • 删除旧的 ALU base-r13 API 文档

  • 增加测试覆盖率

  • 自 0.6.9 以来,来自各种贡献者的各种错误修复和小改进(请参阅提交历史记录)

  • 感谢所有贡献者!

v0.6.9

  • 修复中断 API 更改

v0.6.8

  • 由于意外破坏 API 更改而被拉取

  • 各种小更新和错误修复,但值得注意的是:
    • 支持 XPath 查询的命名空间前缀

    • 编辑配置参数验证

    • 支持多个 RPC 错误

    • 获取支持的设备类型的 API

    • 支持具有多个顶级标签的子树过滤器

  • 感谢所有贡献者!

v0.6.7

  • 自 0.6.6 以来来自各种贡献者的各种错误修复(请参阅提交历史记录)

v0.6.6

  • 如果在方法调用中未指定,则从配置文件中读取 ssh 超时

  • 毒物支持

  • 巨大的 XML 树解析器支持

  • 添加可选的绑定地址以进行连接

v0.6.5

  • 更新了 0.6.5 版本的 README

v0.6.4

  • 将 selectors2 固定到 Python 版本 <= 3.4

  • 修复配置示例以实际使用 nc 命名空间

  • 修复:使用 ssh_config 文件时正确设置 paramiko 的端口

  • 测试:添加测试以检查 ProxyCommand 使用正确的端口

  • 更新 py3 的提交

  • 增强对阿尔卡特朗讯的支持

  • Juniper RPC:允许在 CompareConfiguration 中指定格式

  • NETCONF 1.1 帧的解析不再解码每个字节块

  • 修复 create_subscription 中的过滤器

  • 根据能力 URI 中公布的支持模式验证“with-defaults”模式

v0.6.3

  • 修复使用 PyPi 注册的主页链接

  • SSH 主机密钥检查

  • 更新了 junos.py 以解决 RestrictedUser 错误

  • 关闭 SSH 会话时关闭通道

  • 调用 self.parse() 以确保在签入 ok() 之前检测到错误(如果有)

v0.6.2

  • 迁移到用户选择器而不是选择器,允许更大规模的操作

  • 改进的 netconf:base:1.1 解析

  • 会话关闭时优雅退出

v0.6.0

  • 修复使用新的 Python 3.7 关键字 async

  • 重新启用 Python 3.7

v0.5.4

  • 自 0.5.3 以来的小改动汇总

  • 由于 async 关键字问题而禁用 Python 3.7

v0.5.3

  • 添加通知支持

  • 添加对 ecdsa 密钥的支持

  • 各种错误修复

v0.5.2

  • 添加对 Python 3 的支持

  • 提高 Junos ioproc 性能

  • 性能改进

  • 更新的测试用例

  • 许多错误和性能修复

v0.4.7

  • 添加对 netconf 1.1 的支持

v0.4.6

  • 修复多个 RPC 错误生成

  • 添加对取消提交和持久参数的支持

  • 添加更多示例

v0.4.5

  • 添加华为设备支持

  • 为 hpcomware v7 设备添加 cli 命令支持

  • 添加H3C支持,支持H3C CLI、Action、Get_bulk、Save、Rollback等。

  • 添加阿尔卡特朗讯支持

  • 重写多个错误处理

  • 添加工作服支持,在 README.md 中带有防护罩

  • 多个时将严重性级别设置为更高

  • 简化日志记录和多错误报告

  • 保留错误的堆栈跟踪

  • 仅检查 hostkey_verify 上的已知主机

  • 添加检查设备发回 null error_text

  • 修复 RPC.raise_mode

  • 指定 hostkey_verify=False 不应 load_known_hosts

  • 检查 rpc-error 元素上的正确字段

v0.4.3

  • Nexus exec_command 操作

  • 允许在 Cisco Nexus 中指定多个 cmd 元素

  • 为嵌套的 rpc 错误更新 rpc

  • 防止线程中的竞争条件

  • 防止在会话关闭时挂起

v0.4.2

  • 通过 ~/.ssh/config 解析支持 paramiko ProxyCommand

  • 添加特定于瞻博网络的提交操作

  • 添加华为设备支持

  • 测试/特拉维斯支持

  • 对瞻博网络设备的 ioproc 传输支持

  • 更新 Cisco CSR 设备处理程序

  • 许多次要和主要修复

v0.4.1

  • 如果找到自定义处理程序,则在回复之间切换

  • 添加瞻博网络、思科和默认设备处理程序

  • 在设备参数中允许首选 SSH 子系统名称

  • 允许迭代多个 SSH 子系统名称。

致谢

项目详情


下载文件

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

源分布

ncclient-0.6.13.tar.gz (105.7 kB 查看哈希

已上传 source