跳转到主要内容

NetBox API客户端库

项目描述

Pynetbox

NetBox 的Python API客户端库。

注意:库的6.7及更高版本仅支持NetBox 3.3及以上版本。

兼容性

以下列出的每个pyNetBox版本都已与其对应的NetBox版本进行了测试。

NetBox版本 插件版本
4.0.6 7.4.0
4.0.0 7.3.4
3.7 7.3.0
3.6 7.2.0
3.5 7.1.0
3.3 7.0.0

安装

要安装,请运行 pip install pynetbox

或者,您可以克隆仓库并运行 python setup.py install

快速入门

pynetbox API的完整文档位于 Read the Docs,但以下内容应该足以开始使用它。

首先,导入pynetbox并实例化API。

import pynetbox
nb = pynetbox.api(
    'http://localhost:8000',
    token='d6f4e314a5b5fefd164995169f28ae32d987704f'
)

.api()方法接受的第一个参数是NetBox URL。您可以提供一些命名参数,但在大多数情况下不需要,只需拉取数据。要写入,应提供token参数。

查询

PyNetBox API 的设置是,NetBox 的应用程序是 .api() 对象的属性,反过来,这些应用程序具有代表每个端点的属性。每个端点都有一系列方法可供执行端点操作。例如,为了查询 devices 端点中的所有对象,您需要执行以下操作

>>> devices = nb.dcim.devices.all()
>>> for device in devices:
...     print(device.name)
...
test1-leaf1
test1-leaf2
test1-leaf3
>>>

注意,all() 和 filter() 方法是生成器,它们返回一个只能迭代一次的对象。如果您需要重复迭代它,您必须再次调用 all() 方法,或者将结果封装在一个 list 对象中,如下所示

>>> devices = list(nb.dcim.devices.all())

多线程

PyNetBox 支持 .filter().all() 查询的多线程调用。强烈建议您将 NetBox 安装的 MAX_PAGE_SIZE 设置为任何值,而不是 0None。默认值 1000 通常是一个不错的选择。要启用多线程,请在 .api 中添加 threading=True 参数

nb = pynetbox.api(
    'http://localhost:8000',
    threading=True,
)

替代库

注意:对于对不同方法感兴趣的人,还有一个名为 netbox-python 的 NetBox Python API 客户端库。此库为 NetBox API 提供了一个简单的 Python 包装器。

netbox-python 提供了一个与 NetBox API 交互的最小化界面。虽然它可能不提供 pynetbox 中的所有功能,但它为与 NetBox 接口提供了一个轻量级和简单的选项。

要进一步了解详情和访问文档,请访问 netbox-python

项目详情


发布历史 发布通知 | RSS 源

下载文件

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

源分布

pynetbox-7.4.0.tar.gz (68.1 kB 查看哈希值)

上传时间

构建分布

pynetbox-7.4.0-py3-none-any.whl (35.1 kB 查看哈希值)

上传时间 Python 3

由以下机构支持