在 Ubuntu 20.04 上安装和配置 NetBox

介绍

NetBox 是一个开源的、基于 Web 的基础设施资源建模 (IRM) 应用程序,用于自动化大多数网络操作。 用于管理 IP 地址的 IP 地址管理 (IPAM) 和用于管理和记录计算机网络的数据中心基础设施管理 (DCIM) 是其主要工具。 在本文中,我们将学习如何在 Ubuntu 20.04 上安装和配置 NetBox。

先决条件

在 Vultr 部署一个完全更新的 Ubuntu 20.04 LTS,至少有 2GB 的 RAM 和 1 个 vCPU 内核。 创建具有 sudo 访问权限的非 root 用户。

1.安装和配置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

2.安装Redis

Redis 是内存中的键值存储。 NetBox 使用它进行缓存和排队。

安装Redis。

$ sudo apt install -y redis-server

3.安装和配置NetBox

建议从官方 git 存储库安装 NetBox,以便通过重新拉取 master 分支来进行无缝升​​级。

安装所有必需的软件包。

$ 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/

将 NetBox 从官方 git 存储库克隆到当前目录。

$ 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

随机生成 SECRET_KEY 至少 50 个字母数字字符。

$ sudo /opt/netbox/netbox/generate_secret_key.py

您将获得类似于以下示例的随机秘密。 复制它并保存在某个地方。 您将在配置文件中需要它。

-^%YEl*Q2etCR6$kNG70H=&sM(45XvJaBWdf3O)[email protected]_w1

打开并编辑配置文件 configuration.py.

$ sudo nano /opt/netbox/netbox/netbox/configuration.py

最终文件应具有以下配置。

ALLOWED_HOSTS = ['*']

DATABASE = {
    'NAME': 'netbox',                           # Database name you created
    'USER': 'netbox',                           # PostgreSQL username you created
    'PASSWORD': 'my_strong_password',           # PostgreSQL password you set
    'HOST': 'localhost',                        # Database server
    'PORT': '',                                 # Database port (leave blank for default)
}

SECRET_KEY = '-^%YEl*Q2etCR6$kNG70H=&sM(45XvJaBWdf3O)[email protected]_w1'

运行升级脚本。

$ sudo /opt/netbox/upgrade.sh

进入Python虚拟环境。

$ source /opt/netbox/venv/bin/activate

/opt/netbox/netbox 目录。

$ cd /opt/netbox/netbox

创建一个 超级用户 帐户。

$ python3 manage.py createsuperuser

重新启动系统以应用更改。

$ sudo reboot

4. 配置 Gunicorn

复制 /opt/netbox/contrib/gunicorn.py/opt/netbox/gunicorn.py.

$ sudo cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py

5. 配置 Systemd

复制 contrib/netbox.servicecontrib/netbox-rq.service/etc/systemd/system/ 目录。

$ sudo cp /opt/netbox/contrib/*.service /etc/systemd/system/

重新加载守护进程以启用 Systemd 更改。

$ sudo systemctl daemon-reload

启动 netboxnetbox-rq 服务。

$ sudo systemctl start netbox netbox-rq

启用服务以在启动时启动。

$ sudo systemctl enable netbox netbox-rq

6. 配置 Nginx 网络服务器

安装 Nginx 网络服务器。

$ 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;

    # CHANGE THIS TO YOUR SERVER'S NAME
    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

在启用站点的目录中创建一个符号链接到 netbox 配置文件。

$ sudo ln -s /etc/nginx/sites-available/netbox /etc/nginx/sites-enabled/netbox

重启 nginx 服务以启用新配置。

$ sudo systemctl restart nginx

结论

您已成功安装 NetBox。 您现在可以使用 用户名密码 您在创建时设置 超级用户 帐户。 您现在可以开始配置和管理您的网络组件。

注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com