如何在Ubuntu 20.04 LTS上安装NetBox网络文档和管理工具

Netbox是一个免费且功能强大的IP地址(IPAM)和数据中心基础架构管理(DCIM)工具。它用于存储有关您的网络,VM,清单等的信息。它最初由DigitalOcean的网络工程团队开发。该工具是用Django Python框架编写的,并依赖PostgreSQL数据库。它的目的是充当网络操作的特定于域的事实来源。

在本教程中,我们将说明如何在Ubuntu 20.04上使用Nginx作为反向代理安装Netbox。

先决条件

  • 运行Ubuntu 20.04的服务器。
  • 在您的服务器上配置了root密码。

入门

在开始之前,您将需要安装Netbox所需的一些依赖项。您可以通过运行以下命令来安装所有它们:

apt-get install nginx git gcc supervisor python3 python3-dev python3-pip python3-setuptools build-essential libxml2-dev libxslt1-dev libffi-dev graphviz libpq-dev libssl-dev zlib1g-dev -y

一旦安装了所有软件包,就可以继续进行下一步。

安装和配置PostgreSQL数据库

Netbox依靠PostgreSQL数据库进行数据存储。您可以使用以下命令进行安装:

apt-get install postgresql postgresql-contrib -y

PostgreSQL安装完成后,使用以下命令登录到PostgreSQL:

su - postgres
[email protected]:~$psql

您应该获得以下输出:

psql(12.2(Ubuntu 12.2-4))
键入“帮助”以获取帮助。

接下来,使用以下命令为Netbox创建数据库和用户:

postgres=# CREATE DATABASE netbox;
postgres=# CREATE USER netbox WITH PASSWORD 'password';

接下来,使用以下命令将所有特权授予Netbox数据库:

postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;

接下来,使用以下命令从PostgreSQL Shell退出:

postgres=# exit
[email protected]:~$exit

安装和配置NetBox

首先,将目录更改为/ opt并使用以下命令从Git Hub存储库下载最新版本的Netbox:

cd /opt/
git clone -b master https://github.com/digitalocean/netbox.git

接下来,使用以下命令创建Python二进制文件的符号链接:

ln -s /usr/bin/python3 /usr/bin/python

接下来,将目录更改为/ opt / netbox / netbox /并通过运行以下命令来生成Django SECRET密钥:

cd /opt/netbox/netbox/
./generate_secret_key.py

您应该获得以下输出:

[受电子邮件保护])eTDpo(k ^ f4Sm9bariUnK0syCPMGEIjW6XV_8l5xhB7z

接下来,将目录更改为netbox并重命名示例配置文件:

cd netbox
mv configuration.example.py configuration.py

接下来,编辑Netbox配置文件并定义数据库,密钥和允许的主机:

nano configuration.py

进行以下更改:

ALLOWED_HOSTS = ['您的服务器IP']

#PostgreSQL数据库配置。请参阅Django文档以获取可用参数的完整列表:
#   https://docs.djangoproject.com/en/stable/ref/settings/#databases
数据库= {
    'NAME':'netbox',#数据库名称
    'USER':'netbox',#PostgreSQL用户名
    'PASSWORD':'password',#PostgreSQL密码
    'HOST':'localhost',#数据库服务器
    'PORT':'',#数据库端口(默认保留空白)
    'CONN_MAX_AGE':300,#最大数据库连接期限
}

SECRET_KEY ='[受电子邮件保护])eTDpo(k ^ f4Sm9bariUnK0syCPMGEIjW6XV_8l5xhB7z'

保存并关闭文件,然后使用以下命令安装所有Python依赖项:

pip3 install -r /opt/netbox/requirements.txt

接下来,使用以下命令迁移数据库:

cd /opt/netbox/netbox/
python3 manage.py migrate

接下来,使用以下命令创建Netbox管理用户:Advertisement.banner-1 {text-align:center; padding-top:10pximportant; padding-bottom:10pximportant; padding-left:0pximportant; padding-right:0pximportant; width:100%important; box-sizing:border-boximportant; background -color:#eeeeeeimportant; border:1px实心#dfdfdf}

python3 manage.py createsuperuser

系统将要求您提供用户名和密码,如下所示:

用户名(保留空白以使用“ root”):netboxadmin
电子邮件地址:[受电子邮件保护]
密码: 
再次输入密码: 
超级用户创建成功。

接下来,使用以下命令收集静态文件:

python3 manage.py collectstatic

您应该看到以下输出:

976个静态文件已复制到“ / opt / netbox / netbox / static”。

安装和配置Gunicorn

Netbox是一个基于Django的应用程序。因此,您需要在系统中安装Gunicorn。您可以通过运行以下命令来安装它:

pip3 install gunicorn

安装Gunicorn后,请使用以下命令为Netbox创建一个新的Gunicorn配置文件:Advertisement.large-leaderboard-2 {text-align:center; padding-top:10pximportant; padding-bottom:10pximportant; padding-left:0pximportant; padding-right:0pximportant; width:100%important; box-sizing:border-boximportant; background -color:#eeeeeeimportant; border:1px实心#dfdfdf}

nano /opt/netbox/gunicorn_config.py

添加以下行:

命令='/ usr / local / bin / gunicorn'
pythonpath =“ / opt / netbox / netbox”
绑定='您的服务器IP:8001'
工人= 3
user =“ www-data”

完成后保存并关闭文件。

安装和配置主管

Supervisor是一个客户端/服务器系统,允许您监视和控制NetBox服务。您可以使用以下命令为Netbox创建新的Supervisor配置文件:

nano /etc/supervisor/conf.d/netbox.conf

添加以下行:

[程序:netbox]
命令= gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
目录= / opt / netbox / netbox /
用户= www-data

完成后,保存并关闭文件。然后,使用以下命令重新启动Supervisor服务:

systemctl restart supervisor

您还可以使用以下命令来验证Supervisor服务的状态:

systemctl status supervisor

您应该获得以下输出:

administrator.service-UNIX的主管过程控制系统
     已加载:已加载(/lib/systemd/system/supervisor.service;已启用;供应商预设:已启用)
     活动时间:自UTC 2020-05-30 05:49:08 UTC起活动(运行);14s前
       文件:http://supervisord.org
   主PID:550606(主管)
      任务:5(限制:4691)
     记忆体:184.3M
     CGroup:/system.slice/supervisor.service
             550606 / usr / bin / python3 / usr / bin / supervisord -n -c /etc/supervisor/supervisord.conf
             550626 / usr / bin / python3 / usr / local / bin / gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
             550628 / usr / bin / python3 / usr / local / bin / gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
             550629 / usr / bin / python3 / usr / local / bin / gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
             550630 / usr / bin / python3 / usr / local / bin / gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi

5月30日05:49:08 ubuntu2004 systemd [1]:启动UNIX的Supervisor过程控制系统。
5月30日05:49:08 ubuntu2004主管[550606]:2020-05-30 05:49:08,664 CRIT主管以root身份运行。特权未放弃becau>
5月30日05:49:08 ubuntu2004主管[550606]:2020-05-30 05:49:08,664信息在p>期间包含了额外的文件“ /etc/supervisor/conf.d/netbox.conf”
5月30日05:49:08 ubuntu2004主管[550606]:2020-05-30 05:49:08,671初始化INFO RPC接口'主管'
5月30日05:49:08 ubuntu2004主管[550606]:2020-05-30 05:49:08,671 CRIT服务器'unix_http_server'在没有任何HTTP身份验证的情况下运行>
5月30日05:49:08 ubuntu2004主管[550606]:2020-05-30 05:49:08,672 INFO主管以pid 550606开始
5月30日05:49:09 ubuntu2004主管[550606]:2020-05-30 05:49:09,676信息产生:“ netbox”和pid 550626
5月30日05:49:11 ubuntu2004主管[550606]:2020年5月30日05:49:11,060信息成功:netbox进入RUNNING状态,进程一直处于等待状态

为NetBox配置Nginx

将Nginx配置为反向代理以访问端口80上的Netbox是一个好主意。您可以使用以下命令创建新的Nginx虚拟主机配置:

nano /etc/nginx/sites-available/netbox.conf

添加以下行:

服务器{
    听80;
    server_name your-server-ip;
    client_max_body_size 25m;

    位置/ static / {
        别名/ opt / netbox / netbox / static /;
    }

    位置 / {
        proxy_pass http://您的服务器-ip:8001;
    }
}

保存并关闭文件。然后,创建到/ etc / nginx / sites-enabled /目录的符号链接:Advertisement.leader-1 {text-align:center; padding-top:10pximportant; padding-bottom:10pximportant; padding-left:0pximportant; padding-right:0pximportant; width:100%important; box-sizing:border-boximportant; background -color:#eeeeeeimportant; border:1px实心#dfdfdf}

ln -s /etc/nginx/sites-available/netbox.conf /etc/nginx/sites-enabled/

接下来,使用以下命令验证Nginx是否存在语法错误:

nginx -t

如果一切正常,您应该获得以下输出:

nginx:配置文件/etc/nginx/nginx.conf语法正常
nginx:配置文件/etc/nginx/nginx.conf测试成功

最后,重新启动Nginx服务以实现更改。

systemctl restart nginx

您还可以使用以下命令验证Nginx:

systemctl status nginx

您应该获得以下输出:

nginx.service-Nginx HTTP和反向代理服务器
   已加载:已加载(/usr/lib/systemd/system/nginx.service;已禁用;供应商预设:已禁用)
   活动:自2020年5月30日星期六(美国东部标准时间)起活动(运行);4min 14s前
  进程:984 ExecStart = / usr / sbin / nginx(代码=已退出,状态= 0 /成功)
  处理:982 ExecStartPre = / usr / sbin / nginx -t(代码=已退出,状态= 0 /成功)
  处理:980 ExecStartPre = / usr / bin / rm -f /run/nginx.pid(代码=已退出,状态= 0 /成功)
 主PID:985(nginx)
    任务:3(限制:25028)
   记忆体:5.5M
   CGroup:/system.slice/nginx.service
           985 nginx:主进程/ usr / sbin / nginx
           986 nginx:工作进程
           987 nginx:工作进程

5月30日21:28:12 ubuntu2004 systemd [1]:正在启动Nginx HTTP和反向代理服务器...
Mar 30 21:28:12 ubuntu2004 nginx [982]:nginx:配置文件/etc/nginx/nginx.conf语法正常
Mar 30 21:28:12 ubuntu2004 nginx [982]:nginx:配置文件/etc/nginx/nginx.conf测试成功
3月30日21:28:13 ubuntu2004 systemd [1]:已启动nginx HTTP和反向代理服务器。

此时,Nginx Web服务器已配置为在端口80上为Netbox提供服务。您现在可以继续访问Netbox Web界面。

访问Netbox Web界面

打开网络浏览器,然后访问URL http:// your-server-ip。您将被重定向到以下页面:

Netbox介面

单击登录按钮。您应该在以下屏幕中看到Netbox登录页面:

Netbox登录

提供您的Netbox管理员用户名,密码,然后单击登录按钮。您应该在以下页面中看到Netbox默认仪表板:

Netbox管理控制台

结论

在本指南中,您学习了如何使用Nginx在Ubuntu 20.04上安装Netbox。现在,您可以开始记录网络基础结构。有关更多信息,请访问Netbox官方文档。有任何问题可以免费询问我。

 

资讯来源:由0x资讯编译自HOWTOFORGE,版权归作者所有,未经许可,不得转载
你可能还喜欢