如何在 Ubuntu 20.04 上安装和配置 NetBox 教程
简介
NetBox 是一个开源的、基于 Web 的基础设施资源建模(IRM)应用程序,旨在自动化各种网络操作。当你安装 NetBox 时,你将获得像 IP 地址管理(IPAM)这样的强大工具,用于管理 IP 地址,以及数据中心基础设施管理(DCIM)用于有效记录和监督计算机网络。
在本文中,我们将探讨如何在 Ubuntu 20.04 上安装 NetBox 并对其进行配置,以实现有效的网络管理和文档记录。
准备工作
服务器准备
必要前提:
- 一台 Linux 服务器(推荐腾讯云、阿里云或雨云等)。
我将以 雨云 为例,带大家创建一台自己的云服务器,以便学习本篇文章的内容。
注册链接: https://www.rainyun.com/NTE2NDM3_
创建雨云服务器
以下步骤仅供参考,请根据实际需求选择配置。
- 点击 云产品 → 云服务器 → 立即购买。
- 选择距离你较近的区域,以保证低延迟。
- 按照自己需求选择配置,选择 Ubuntu 22.04 版本,按照自己需求是否预装 Docker。
- 最后按照提示进行购买。
- 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。
- 我们使用
PowerShell
进行SSH
远程连接到服务器,Win+R
打开运行窗口,输入powershell
后点击确定。
- 到此为止,我们的云服务器就远程连接上了。
安装和配置步骤
第一步:安装和配置 PostgreSQL
# 安装 PostgreSQL
$ sudo apt install postgresql libpq-dev -y
# 启动数据库服务器
$ sudo systemctl start postgresql
# 使数据库服务器在重启时自动启动
$ sudo systemctl enable postgresql
# 更改默认 PostgreSQL 密码
$ sudo passwd postgres
# 切换到 `postgres` 用户
$ su - postgres
# 登录 PostgreSQL
$ psql
# 创建数据库 `netbox`
CREATE DATABASE netbox;
# 创建用户 `netbox` 与密码 `my_strong_password`。请替换 `my_strong_password` 为一个强密码
CREATE USER netbox WITH ENCRYPTED password 'my_strong_password';
# 授予 `netbox` 数据库所有权限给 `netbox` 用户
GRANT ALL PRIVILEGES ON DATABASE netbox to netbox;
# 退出 PostgreSQL
\q
# 返回到你的非 root sudo 用户账户
$ exit
第二步:安装 Redis®
Redis® 是一个内存中键值存储系统。NetBox 使用它进行缓存和队列处理。
# 安装 Redis®
$ sudo apt install -y redis-server
第三步:安装和配置 NetBox
建议从官方 git 仓库安装 NetBox,以便通过重新拉取主分支实现无缝升级。
# 安装所有必需的包
$ sudo apt install python3 python3-pip python3-venv python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev libpq-dev libssl-dev zlib1g-dev git -y
# 更新 pip 到最新版本
$ sudo pip3 install --upgrade pip
# 我们将使用 `/opt/netbox/` 作为安装目录。创建目录 `/opt/netbox/` 并切换到 `/opt/netbox/` 目录
$ sudo mkdir -p /opt/netbox/ && cd /opt/netbox/
# 从官方 git 仓库克隆 NetBox 到当前目录
$ sudo git clone -b master https://github.com/netbox-community/netbox.git .
# 创建系统用户名为 `netbox`
$ sudo adduser --system --group netbox
# 授予用户 `netbox` 拥有 `/opt/netbox/netbox/media/` 的权限
$ sudo chown --recursive netbox /opt/netbox/netbox/media/
# 浏览到 `/opt/netbox/netbox/netbox/` 目录
$ cd /opt/netbox/netbox/netbox/
# 复制示例配置文件 `configuration.example.py` 到我们将用于配置项目的配置文件 `configuration.py`
$ sudo cp configuration.example.py configuration.py
# 创建 Python 二进制的符号链接
$ sudo ln -s /usr/bin/python3 /usr/bin/python
# 生成一个至少 50 个字母数字的随机 `SECRET_KEY`
$ sudo /opt/netbox/netbox/generate_secret_key.py
# 你将得到一个类似下面的随机密钥。复制并保存它。你将在配置文件中需要它。
-^%YEl*Q2etCR6$kNG70H=&sM(45XvJaBWdf3O)inZ@L9j8_w1
编辑配置文件 configuration.py
。
$ sudo nano /opt/netbox/netbox/netbox/configuration.py
最终文件应包含以下配置。
ALLOWED_HOSTS = ['*']
DATABASE = {
'NAME': 'netbox', # 你创建的数据库名称
'USER': 'netbox', # 你创建的 PostgreSQL 用户名
'PASSWORD': 'my_strong_password', # 你设置的 PostgreSQL 密码
'HOST': 'localhost', # 数据库服务器
'PORT': '', # 数据库端口(留空为默认)
}
SECRET_KEY = '-^%YEl*Q2etCR6$kNG70H=&sM(45XvJaBWdf3O)inZ@L9j8_w1'
# 运行升级脚本
$ sudo /opt/netbox/upgrade.sh
# 进入 Python 虚拟环境
$ source /opt/netbox/venv/bin/activate
# 转到 `/opt/netbox/netbox` 目录
$ cd /opt/netbox/netbox
# 创建超级用户账户
$ python3 manage.py createsuperuser
第四步:配置 Gunicorn
# 复制 `/opt/netbox/contrib/gunicorn.py` 到 `/opt/netbox/gunicorn.py`
$ sudo cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py
第五步:配置 Systemd
# 复制 `contrib/netbox.service` 和 `contrib/netbox-rq.service` 到 `/etc/systemd/system/` 目录
$ sudo cp /opt/netbox/contrib/*.service /etc/systemd/system/
# 重新加载守护进程以启用 Systemd 变更
$ sudo systemctl daemon-reload
# 启动 `netbox` 和 `netbox-rq` 服务
$ sudo systemctl start netbox netbox-rq
# 使服务在启动时自动初始化
$ sudo systemctl enable netbox netbox-rq
第六步:配置 Nginx Web 服务器
# 安装 Nginx Web 服务器
$ sudo apt install -y nginx
# 复制 NetBox Nginx 配置文件 `nginx.conf` 到 `/etc/nginx/sites-available/netbox`
$ sudo cp /opt/netbox/contrib/nginx.conf /etc/nginx/sites-available/netbox
# 编辑文件 `netbox`
$ sudo nano /etc/nginx/sites-available/netbox
替换所有文件内容为以下代码。将 server_name
的值修改为你的服务器 IP 地址:
server {
listen 80;
# 将此更改为你的服务器名称
server_name 192.0.2.10;
client_max_body_size 25m;
location /static/ {
alias /opt/netbox/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-Proto $scheme;
}
}
# 删除 `/etc/nginx/sites-enabled/default`
$ sudo rm /etc/nginx/sites-enabled/default
在 sites-enabled 目录中创建 netbox
配置文件的符号链接
$ sudo ln -s /etc/nginx/sites-available/netbox /etc/nginx/sites-enabled/netbox
重启 nginx 服务以启用新配置
$ sudo systemctl restart nginx
结尾
你已经成功安装了 NetBox。你现在可以使用创建超级用户账户时设置的 用户名 和 密码 登录。你现在可以开始配置和管理你的网络组件了。
雨云 - 新一代云服务提供商: https://www.rainyun.com/NTE2NDM3_