乐于分享
好东西不私藏

NetBox安装部署教程与OVF模板

NetBox安装部署教程与OVF模板

上期文章我们盘点了NetBox强大的资产管控、IP地址管理、机房运维等核心功能,今天我们来讨论下NetBox的安装部署。

往期回顾:
项目落地不再乱!NetBox:数据中心运维/网络集成项目必备标准化工具

NetBox的原生手动安装流程比较繁琐,涉及依赖部署、数据库配置、程序调试等多个步骤,初次安装容易耗费大量时间。为了适配不同小伙伴的需求,今天我准备了两种上手方案,大家可以根据自身情况自由选择。

如果只是想快速体验,不想折腾复杂的安装配置,我已经打包好了 OVF 模板,直接导入 VMware 即可体验使用,私信回复netbox即可获取。

如果想深入研究部署流程,那就跟随下文教程一步步操作。

以下是详细的 NetBox 手动安装全过程👇

安装流程:
(一)操作系统准备与依赖安装
(二)配置 PostgreSQL 数据库
(三)下载netbox源码
(四)配置 NetBox 主配置文件
(五)创建Python虚拟环境,并在虚拟环境中安装依赖
(六)Django 初始化配置
(七)配置 Systemd 服务
(八)配置Nginx反向代理
(九放行防火墙并访问

(一)操作系统准备与依赖安装

硬件配置的话基本上2核心CPU、4G内存、16G硬盘就可以跑起来,实际生成环境中建议至少4核心、8G内存、120G硬盘以保证使用体验。

netbox仅支持Linux操作系统,主流的Linux发行版基本都可以,我这里使用的是Ubuntu 24.04.2 LTS。

1.更新系统

sudo apt update && sudo apt upgrade -y

2.安装依赖、postgresql数据库、redis缓存、Nginx中间件

sudo apt install -y git python3 python3-pip python3-venv python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev libpq-dev libssl-dev zlib1g-dev postgresql redis-server nginx

(二)配置 PostgreSQL 数据库

1. 进入 postgres 命令行

sudo -u postgres psql

2.创建 netbox 数据库

CREATE DATABASE netbox;

3.创建数据库访问用户'netbox'并设置密码,密码设置为'NetBox@2026'

CREATE USER netbox WITH PASSWORD 'NetBox@2026';

4.把netbox数据库归属权给到新创建的netbox用户

ALTER DATABASE netbox OWNER TO netbox;

5.进入新创建的netbox数据库,配置权限,然后退出

\c netbox;GRANT CREATE ON SCHEMA public TO netbox;\q

6.测试数据库状态

psql -U netbox -W -h localhost netbox

密码输入:NetBox@2026,可以正常进入就代表数据库配置成功。

(三)下载netbox源码
请按照下述代码顺序依次执行,保证文件路径与后续步骤里的配置文件相互匹配。
#最新版本可在github查看,此处以v4.2.5为例。sudo wget https://github.com/netbox-community/netbox/archive/refs/tags/v4.2.5.tar.gzsudo tar -zxvf v4.2.5.tar.gz -C /optsudo ln -s /opt/netbox-4.2.5 /opt/netboxcd /opt/netbox/netbox/netbox
(四)配置 NetBox 主配置文件
1.复制配置文件模板以创建主配置文件
sudo cp configuration_example.py configuration.py
2.生成密钥
python3 ../generate_secret_key.py
复制输出的密钥字符串,后面要放到配置文件里面。
3.修改configuration.py配置文件中的以下几项
# 允许访问的IP/域名,写服务器IP或者*ALLOWED_HOSTS = ['*']# 数据库配置DATABASE = {    'NAME''netbox',    'USER''netbox',    'PASSWORD''NetBox@2026',    'HOST''localhost',    'PORT''',    'CONN_MAX_AGE'300,}# Redis默认本地不用改CACHING = {    'HOST''localhost',    'PORT'6379,    'DATABASE'1,    'USERNAME''',    'PASSWORD''',    'SSL'False,}# 粘贴刚才生成的SECRET_KEYSECRET_KEY = '你刚才复制的密钥'# 生产环境关闭调试DEBUG = False
(五)创建Python虚拟环境,并在虚拟环境中安装依赖
1.创建Python虚拟环境
sudo chown -R $USER:$USER /opt/netbox-4.2.5 /opt/netboxcd /opt/netboxsudo python3 -m venv venvsource venv/bin/activate
2.使用pip安装依赖包
# 升级pippip install --upgrade pip# 安装依赖包pip install -r requirements.txt
(六)Django 初始化配置
cd /opt/netbox/netbox/# 数据库初始化迁移python manage.py migrate# 收集前端静态文件python manage.py collectstatic --no-input# 创建超级管理员账号,该账号为后期网页登录netbox的账号python manage.py createsuperuser 
(七) 配置 Systemd 服务
直接复制下面的代码到对应文件,路径已经测试好了。
1.配置netbox.service
sudo nano /etc/systemd/system/netbox.service#将下面的代码复制到netbox.service文件中[Unit]Description=NetBox WSGI ServiceDocumentation=https://netbox.readthedocs.io/After=network.target postgresql.service redis-server.service[Service]Type=simpleUser=www-dataGroup=www-dataWorkingDirectory=/opt/netbox-4.2.5/netboxExecStart=/opt/netbox/venv/bin/gunicorn --workers 4 --bind 127.0.0.1:8001 netbox.wsgiRestart=on-failure[Install]WantedBy=multi-user.target
2.配置netbox-rq.service
sudo nano /etc/systemd/system/netbox-rq.service#将下面的代码复制到netbox-rq.service中[Unit]Description=NetBox RQ WorkerAfter=network.target postgresql.service redis-server.service[Service]Type=simpleUser=www-dataGroup=www-dataWorkingDirectory=/opt/netbox/netboxExecStart=/opt/netbox/venv/bin/python manage.py rqworker defaultRestart=on-failure[Install]WantedBy=multi-user.target
3.授权目录权限
sudo chown -R www-data:www-data /opt/netbox
4.启动并设置开机自启
sudo systemctl daemon-reloadsudo systemctl start netbox netbox-rqsudo systemctl enable netbox netbox-rq# 查看运行状态sudo systemctl status netboxsudo systemctl status netbox-rq
第四步执行完成之后服务状态如下图所示。
(八) 配置Nginx反向代理
1.创建nginx配置文件
sudo nano /etc/nginx/sites-available/netbox
将下面的代码复制到netbox文件中,注意修改IP地址。
server {    listen 80;    listen [::]:80;    server_name xx.xx.xx.xx; #这里改成你的IP地址    client_max_body_size 25m;    location /static/ {        alias /opt/netbox-4.2.5/netbox/static/;    }    location / {        proxy_pass http://127.0.0.1:8001;        proxy_set_header X-Forwarded-Host $http_host;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        proxy_set_header X-Forwarded-Proto $scheme;    }}
2.删除默认站点,启动nginx服务器
sudo rm /etc/nginx/sites-enabled/defaultsudo ln -s /etc/nginx/sites-available/netbox /etc/nginx/sites-enabled/sudo nginx -tsudo systemctl restart nginxsudo systemctl enable nginx
(九)放行防火墙并访问
sudo ufw allow 80/tcpsudo ufw reload
浏览器打开:http://服务器IP
使用刚才createsuperuser创建的账号登录。
后续我将持续更新NetBox系列文章,针对NetBox几大核心重要模块,逐一拆解详细功能和使用逻辑,助力大家在集成项目实施、机房日常运维中实现标准化、流程化、自动化,欢迎大家持续关注、一起交流学习!

相关学习资料