是打包的 Django 应用程序,可以与 NetBox 一起安装,以提供核心应用程序中不存在的自定义功能。插件可以引入自己的模型和视图,但不能干扰现有组件。NetBox用户可以选择安装社区提供的插件或构建自己的插件。
能力
NetBox插件架构允许以下内容:
- 添加新的数据模型。插件可以引入一个或多个模型来保存数据。(模型实质上是 SQL 数据库中的一个表。
- 添加新的网址和视图。插件可以在根路径下注册 URL,为用户提供可浏览的视图。
/plugins
- 向现有模型模板添加内容。模板内容类可用于在核心 NetBox 模型的视图中注入自定义 HTML 内容。此内容可以显示在页面的左侧、右侧或底部。
- 添加导航菜单项。每个插件都可以在导航菜单中注册新链接。每个链接可能具有一组用于特定操作的按钮,类似于内置导航项。
- 添加自定义中间件。自定义 Django 中间件可以由每个插件注册。
- 声明配置参数。每个插件都可以在其唯一的命名空间中定义必需、可选和默认的配置参数。插头配置参数由用户在 下定义。
PLUGINS_CONFIG
configuration.py
- 限制按 NetBox 版本安装。插件可以指定与之兼容的最低和/或最大 NetBox 版本。
局限性
无论是受策略还是技术限制,插件与NetBox核心的交互都在某些方面受到限制。插件不得:
- 修改核心模型。插件不得以任何方式更改、删除或覆盖核心 NetBox 模型。制定此规则是为了确保核心数据模型的完整性。
- 在
/plugins
根目录之外注册 URL。所有插件 URL 都限制为此路径,以防止与核心或其他插件发生路径冲突。 - 覆盖核心模板。插件可以在支持的地方注入其他内容,但不能操作或删除核心内容。
- 修改核心设置。为插件提供了配置注册表,但它们不能更改或删除核心配置。
- 禁用核心组件。插件不允许禁用或隐藏核心 NetBox 组件。
安装插件
以下说明详细介绍了安装和启用 NetBox 插件的过程。
安装包
根据安装说明下载并安装插件包。通过 PyPI 发布的插件通常使用 pip 安装。请务必在NetBox的虚拟环境中安装插件。
$ source /opt/netbox/venv/bin/activate
(venv) $ pip install <package>
或者,您可能希望通过运行 来手动安装插件。如果您正在开发插件并且只想临时安装它,请改为运行。python setup.py installpython setup.py develop
启用插件
在netbox中,将插件的名称添加到列表中:configuration.pyPLUGINS
PLUGINS = [
'plugin_name',
]
配置插件
如果插件需要任何配置,请在参数下定义它。可用的配置参数应在插件的自述文件中详细说明。configuration.pyPLUGINS_CONFIG
PLUGINS_CONFIG = {
'plugin_name': {
'foo': 'bar',
'buzz': 'bazz'
}
}
运行数据库迁移
如果插件引入了新的数据库模型,请运行提供的模式迁移:
(venv) $ cd /opt/netbox/netbox/
(venv) $ python3 manage.py migrate
删除 Python 包
用于删除已安装的插件:pip
$ source /opt/netbox/venv/bin/activate (venv) $ pip uninstall <package>
重新启动 WSGI 服务
重新启动 WSGI 服务:# sudo systemctl restart netbox
No Comments