如何在 Ubuntu 20.04 上安装和配置 NetBox 教程

如何在 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_

NetBox 是一个使用脚本语言进行应用软件开发与发布的开发环境运行平台,使用 NetBox,可以完全使用脚本语言(比如 VBScript,Javascript) 创建出稳定高效的应用软件,并且可以平滑移植到从 Windows 98 到 Windows .NET Server 的全部操作系统上。 NetBox 提供完全与操作系统无关的高性能的 HttpServer 对象,且完整支持 asp 服务器脚本技术,可以方便地将成熟的 asp 应用通过 NetBox 部署到各种操作环境,由于不再局限于操作系统的限制,甚至可以在 Windows XP 上达到超出 Windows 2000 Advance Server 的性能支持。 NetBox 还提供底层设备的支持,通过 NetBox 的内部对象 Socket 支持,可以方便地进行底层网络编程,NetBox 也提供高端对象的支持,通过使用 TcpServer,程序员可以提供高性能的多线程 Tcp 服务器,改变了 VBScript Javascript 程序员不能进行低端编程的窘况。 NetBox 通过提供 Service 对象,使得 NetBox 应用得以安装成为系统服务,免除了人工干预运行之苦,通过以服务方式运行,应用软件可以在第一时间得到控制,并且不受用户登录退出的影响,从而提供更加稳定的服务。NetBox 同时提供了基于 Windows NT 技术的服务基于 Windows 98 技术的服务,由同一套对象支持,使用方法完全相同,更加方便在不同操作系统下移植应用。 对于需要直接用户交互的软件,NetBox 提供了对控制台的访问支持,Console 对象提供了对控制台的简单支持,基本可以满足简单用户交互的需求。 对于需要复杂商业逻辑的应用,可以使用脚本部件进行逻辑封装,NetBox 支持直接使用微软 wsc 格式的脚本部件,极大方便多层应用的开发。 NetBox 可以以两种方式运行,开发模式发布模式。在开发模式中,所有的脚本代码都是存放在 NetBox 所在的目录及其子目录中,以便于修改、调试。在最终软件发布时,出于版权考虑、代码安全考虑、代码完整性考虑等,可以将全部代码与运行环境使用 NetBox 专用的发布工具发布成为一个完全独立执行的发布版本,全部 NetBox 支持的脚本程序,包括主程序、asp 程序、wsc 对象,以及程序所引用的文件,包括 Include 文件、Web 应用所必须的静态文件等等,都可以全部被发布进这个文件,从而达到发布整个应用的目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xxin¥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值