在 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 https://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

相关阅读:

Posted in: LinuxTags: ,