netbox-branching 的安装和配置教程
项目基础介绍
netbox-branching 是一个为 NetBox 提供分支功能的官方插件,它允许用户创建 NetBox 数据库的静态快照,这些快照可以独立修改,并在之后合并回主数据库。这种功能使用户能够在不影响网络真相源完整性的情况下,对 NetBox 中的对象进行“离线”更改。此外,它也提供了一个机会,在应用更改之前可以批量审查这些更改。
该项目的主要编程语言是 Python。
项目使用的关键技术和框架
- NetBox: 一个开源的 IP 地址管理(IPAM)和数据中心自动化工具。
- PostgreSQL: 一个功能强大的开源对象关系型数据库系统。
- Django: 一个用于快速开发网站的高级 Python Web 框架。
项目安装和配置的准备工作
在开始安装 netbox-branching 插件之前,请确保您的系统满足以下要求:
- NetBox 版本 4.1 或更高。
- PostgreSQL 版本 12 或更高。
- Python 环境已经设置好,并且能够运行 NetBox。
接下来是详细的安装步骤:
-
授权 PostgreSQL 权限
首先,需要给 NetBox 数据库用户授权创建架构的权限:
GRANT CREATE ON DATABASE $database TO $user;请将
$database替换为实际的数据库名称,将$user替换为实际的数据库用户名称。 -
激活 NetBox 虚拟环境
在终端中,进入到 NetBox 的虚拟环境目录,并激活它:
$ source /opt/netbox/venv/bin/activate -
安装 netbox-branching 插件
使用 pip 命令从 PyPI 安装 netbox-branching 插件:
$ pip install netboxlabs-netbox-branching -
配置 NetBox 以使用插件
打开 NetBox 的
configuration.py文件,并在PLUGINS列表的末尾添加netbox_branching。请注意,netbox_branching必须是列表中的最后一个插件。PLUGINS = [ # ... 'netbox_branching', ] -
创建 local_settings.py
在与
settings.py相同的目录中创建一个local_settings.py文件,以覆盖DATABASES和DATABASE_ROUTERS设置,从而启用动态架构支持。from netbox_branching.utilities import DynamicSchemaDict from .configuration import DATABASE # 使用 DynamicSchemaDict 包装 DATABASES 以支持动态架构 DATABASES = DynamicSchemaDict({ 'default': DATABASE, }) # 使用自定义数据库路由器 DATABASE_ROUTERS = [ 'netbox_branching.database.BranchAwareRouter', ] -
运行 NetBox 迁移
最后,运行以下命令来执行 NetBox 迁移,应用 netbox-branching 插件的数据库变更:
$ ./manage.py migrate
完成以上步骤后,netbox-branching 插件应该就已经成功安装并配置完成了。