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
设置为任何值,而不是 0
或 None
。默认值 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。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定该选择哪个,请了解更多关于安装包的信息。