从零搭建Netbox IPAM:PostgreSQL与Redis集成部署指南

张开发
2026/4/21 3:12:18 15 分钟阅读

分享文章

从零搭建Netbox IPAM:PostgreSQL与Redis集成部署指南
1. 环境准备CentOS系统基础配置在开始部署Netbox之前我们需要先准备好CentOS系统环境。我推荐使用CentOS 7.x版本这个版本在企业环境中广泛使用稳定性有保障。我自己在多个生产环境部署时都选择了CentOS 7.8实测下来非常稳定。首先我们需要更新系统基础软件包。这个步骤看似简单但很多新手容易忽略导致后续安装依赖时出现版本冲突。执行以下命令yum update -y yum install -y epel-release更新完成后建议重启一次系统确保所有更新生效。接下来安装一些基础开发工具这些工具在后续编译Python包时会用到yum groupinstall -y Development Tools yum install -y wget git我遇到过不少因为缺少开发工具导致Python包安装失败的案例特别是libffi-devel和openssl-devel这两个包如果不提前安装后面pip安装依赖时会报各种奇怪的错误。2. PostgreSQL数据库安装与配置2.1 安装PostgreSQL 9.6Netbox官方推荐使用PostgreSQL作为后端数据库。虽然新版本的PostgreSQL也能用但经过我的测试PostgreSQL 9.6与Netbox的兼容性最好。安装步骤如下yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm yum install -y postgresql96 postgresql96-server postgresql96-devel安装完成后需要初始化数据库/usr/pgsql-9.6/bin/postgresql96-setup initdb systemctl start postgresql-9.6 systemctl enable postgresql-9.6这里有个小技巧初始化完成后建议先修改PostgreSQL的认证方式。编辑/var/lib/pgsql/9.6/data/pg_hba.conf文件找到所有ident替换为md5这样我们才能用密码连接数据库。2.2 创建Netbox数据库和用户现在我们需要为Netbox创建专门的数据库和用户。切换到postgres用户执行sudo -u postgres psql在psql命令行中执行以下SQL语句CREATE DATABASE netbox; CREATE USER netbox WITH PASSWORD 你的密码; GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox; \q这里我建议密码设置复杂一些最好包含大小写字母、数字和特殊字符。曾经有个客户因为使用简单密码导致数据库被入侵教训深刻。3. Redis安装与配置3.1 安装RedisRedis在Netbox中用于缓存和后台任务队列。安装非常简单yum install -y redis systemctl start redis systemctl enable redis安装完成后可以测试Redis是否正常工作redis-cli ping如果返回PONG就说明Redis运行正常。Redis默认配置对大多数场景已经够用但如果你的服务器内存较小可能需要调整/etc/redis.conf中的maxmemory参数。4. Netbox核心安装4.1 准备Python环境Netbox是基于Python的Django框架开发的所以我们需要先配置好Python环境。我推荐使用Python 3.6版本yum install -y python36 python36-devel创建虚拟环境是个好习惯可以避免系统Python环境被污染mkdir -p /opt/netbox cd /opt/netbox python3 -m venv venv source venv/bin/activate4.2 获取Netbox源代码直接从GitHub克隆最新的Netbox代码git clone -b master https://github.com/netbox-community/netbox.git .克隆完成后需要创建专用用户来运行Netboxgroupadd netbox adduser -r netbox -g netbox chown --recursive netbox /opt/netbox/netbox/media/5. 配置Netbox5.1 配置文件设置进入Netbox目录复制并编辑配置文件cd /opt/netbox/netbox/ cp configuration.example.py configuration.py编辑configuration.py文件主要修改以下几个部分ALLOWED_HOSTS [*] # 或者指定你的域名 DATABASE { NAME: netbox, USER: netbox, PASSWORD: 你的密码, HOST: localhost, PORT: , CONN_MAX_AGE: 300, } SECRET_KEY 生成一个足够复杂的密钥SECRET_KEY建议使用50个字符以上的随机字符串可以用openssl rand -base64 40命令生成。5.2 数据库迁移和静态文件收集在虚拟环境中执行以下命令pip install -r requirements.txt python3 manage.py migrate python3 manage.py collectstatic --no-input这些命令会创建数据库表结构并收集静态文件。如果一切顺利你应该能看到大量输出信息最后没有报错。6. 创建管理员账户和测试运行6.1 创建超级用户执行以下命令创建管理员账户python3 manage.py createsuperuser按照提示输入用户名、邮箱和密码。这个账户将拥有Netbox的所有管理权限。6.2 测试运行可以先以开发模式启动Netbox测试python3 manage.py runserver 0.0.0.0:8000 --insecure访问http://你的服务器IP:8000应该能看到Netbox登录界面。如果能看到说明基础安装已经成功。7. 生产环境部署7.1 使用Nginx和uWSGI开发服务器不适合生产环境我们需要配置Nginx和uWSGI。先安装必要的软件yum install -y nginx pip install uwsgi创建uWSGI配置文件/opt/netbox/uwsgi.ini[uwsgi] http :8000 chdir /opt/netbox/netbox module netbox.wsgi home /opt/netbox/venv master true processes 4然后配置Nginx创建/etc/nginx/conf.d/netbox.confserver { listen 80; server_name your-domain.com; location /static/ { alias /opt/netbox/netbox/static/; } location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8000; } }启动服务systemctl start nginx systemctl enable nginx uwsgi --ini /opt/netbox/uwsgi.ini7.2 配置系统服务为了让uWSGI随系统启动我们可以创建一个systemd服务。创建/etc/systemd/system/netbox.service[Unit] DescriptionNetBox uWSGI Service Afternetwork.target [Service] Usernetbox Groupnetbox WorkingDirectory/opt/netbox/netbox ExecStart/opt/netbox/venv/bin/uwsgi --ini /opt/netbox/uwsgi.ini Restartalways KillSignalSIGQUIT Typenotify NotifyAccessall [Install] WantedBymulti-user.target然后启用并启动服务systemctl daemon-reload systemctl start netbox systemctl enable netbox现在你的Netbox应该已经可以通过80端口访问了。记得配置防火墙开放80端口firewall-cmd --permanent --add-servicehttp firewall-cmd --reload8. 日常维护和备份8.1 数据库备份定期备份PostgreSQL数据库非常重要sudo -u postgres pg_dump netbox netbox_backup.sql建议设置cron任务自动备份并将备份文件复制到其他服务器。8.2 升级Netbox升级前一定要先备份。升级步骤大致如下cd /opt/netbox git pull origin master source venv/bin/activate pip install -r requirements.txt --upgrade python3 manage.py migrate python3 manage.py collectstatic --no-input systemctl restart netbox升级后要仔细检查所有功能是否正常。我建议先在测试环境验证升级过程确认没问题再升级生产环境。

更多文章