一.环境部署
在正式使用NETBOX之前,需要提前配置以下所有:
1.Postsql
本节需要安装和配置本地 PostgreSQL 数据库。如果您已经有一个 PostgreSQL 数据库服务,请跳到下一部分。
注意:NetBox 需要 PostgreSQL 11 或更高版本。请注意,不支持 MySQL 和其他关系数据库。
本人以本机centos7镜像为例子,首先以管理员权限进入虚拟机
首先确认自己的yum是否为最新 不然可能无法执行一些命令。
进入postsql选择适合自己的postsql版本
传送门:PostgreSQL:Linux 下载(Red Hat 系列)
本人选择如下版本:
按照提示在虚拟机的命令面板执行即可
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql12-server
sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
sudo systemctl enable postgresql-12
sudo systemctl start postgresql-12
在完成安装后,需要为 NetBox 创建一个数据库,并为其分配用户名和密码进行身份验证。首先以系统 Postgres 用户身份调用 PostgreSQL shell。
sudo -u postgres psql
此时可能会有一个权限不足的提醒,如下图,可以忽略
继续输入以下命令,看到如下图成功后即可
CREATE DATABASE netbox;
CREATE USER netbox WITH PASSWORD 'J5brHrAXFLQSif0K';
GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
2.Redis
NetBox v2.9.0 及更高版本需要 Redis v4.0 或更高版本。如果您的发行版没有提供足够新的版本,则需要从源代码构建 Redis。有关更多详细信息,请参阅 Redis 安装文档。
由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc 环境(gcc -v),如果没有安装,执行以下命令进行安装。
yum install -y gcc
然后wegt +自己的下载链接,下载完后tar -zvxf +压缩包名解压
tar -zvxf 7.0.7.tar.gz
3.Netbox
在安装netbox前先安装python
NetBox 需要 Python 3.8、3.9、3.10 或 3.11
安装完python后导入依赖包
sudo yum install -y gcc libxml2-devel libxslt-devel libffi-devel libpq-devel openssl-devel redhat-rpm-config
克隆 Git 存储库
创建 NetBox 安装的基本目录。对于本指南,我们将使用 ./opt/netbox
安装git:
sudo yum install -y git
因为git clone要访问github,需要在下载完git后输入以下的命令:
git config --global http.postBuffer 524288000
接下来,将 NetBox GitHub 存储库的主分支克隆到当前目录中。(此分支始终保存当前稳定版本
sudo git clone -b master --depth 1 https://github.com/netbox-community/netbox.git .
该命令应生成类似于以下内容的输出:git clone
Cloning into '.'... remote: Enumerating objects: 996, done. remote: Counting objects: 100% (996/996), done. remote: Compressing objects: 100% (935/935), done. remote: Total 996 (delta 148), reused 386 (delta 34), pack-reused 0 Receiving objects: 100% (996/996), 4.26 MiB | 9.81 MiB/s, done. Resolving deltas: 100% (148/148), done.
创建网络盒系统用户
创建名为 的系统用户帐户。我们将 WSGI 和 HTTP 服务配置为在此帐户下运行。我们还将分配此用户对媒体目录的所有权。这确保了NetBox能够保存上传的文件。
sudo groupadd --system netbox
sudo adduser --system -g netbox netbox
sudo chown --recursive netbox /opt/netbox/netbox/media/
配置
移动到 NetBox 配置目录并创建名为 .此文件将保存所有本地配置参数。
cd /opt/netbox/netbox/netbox/
sudo cp configuration_example.py configuration.py
使用您首选的编辑器打开以开始配置 NetBox。NetBox 提供了许多配置参数,但新安装只需要以下四个参数:configuration.py
ALLOWED_HOSTS
DATABASE
REDIS
SECRET_KEY
ALLOWED_HOSTS
这是可以访问此服务器的有效主机名和 IP 地址的列表。必须至少指定一个名称或 IP 地址。(请注意,这并不限制可以访问 NetBox 的位置:它仅用于 HTTP 主机标头验证。
ALLOWED_HOSTS = ['netbox.example.com', '192.0.2.123']
如果您还不确定 NetBox 安装的域名和/或 IP 地址是什么,则可以将其设置为通配符(星号)以允许所有主机值:
ALLOWED_HOSTS = ['*']
数据库
此参数保存数据库配置详细信息。您必须定义配置 PostgreSQL 时使用的用户名和密码。如果服务在远程主机上运行,请相应地更新 和 参数。有关各个参数的更多详细信息,请参阅配置文档。HOSTPORT
DATABASE = { 'NAME': 'netbox', # Database name 'USER': 'netbox', # PostgreSQL username 'PASSWORD': 'J5brHrAXFLQSif0K', # PostgreSQL password 'HOST': 'localhost', # Database server 'PORT': '', # Database port (leave blank for default) 'CONN_MAX_AGE': 300, # Max database connection age (seconds) }
雷迪斯
Redis 是 NetBox 用于缓存和后台任务队列的内存中键值存储。Redis 通常需要最少的配置;以下值应该足以满足大多数安装的需求。有关各个参数的更多详细信息,请参阅配置文档。
请注意,NetBox 需要规范两个独立的 Redis 数据库:和 。它们可能都由同一 Redis 服务提供,但每个服务都应具有唯一的数字数据库 ID。taskscaching
REDIS = { 'tasks': { 'HOST': 'localhost', # Redis server 'PORT': 6379, # Redis port 'PASSWORD': '', # Redis password (optional) 'DATABASE': 0, # Database ID 'SSL': False, # Use SSL (optional) }, 'caching': { 'HOST': 'localhost', 'PORT': 6379, 'PASSWORD': '', 'DATABASE': 1, # Unique ID for second database 'SSL': False, } }
SECRET_KEY
必须为此参数分配一个随机生成的密钥,用作哈希和相关加密函数的盐。(但请注意,它从未直接用于加密机密数据。此密钥对于此安装必须是唯一的,建议长度至少为 50 个字符。它不应在本地系统外部共享。
父目录中提供了一个名为的简单 Python 脚本,以帮助生成合适的密钥:generate_secret_key.py
单独启动一个命令面板,进入父目录后使用以下命令,并将生成的随机密码粘贴到configuration.py