在Ubuntu上安装NetBox网络文档和管理工具
Netbox是一款免费且功能强大的IP地址(IPAM)和数据中心基础设施管理(DCIM)工具。它用于存储你的网络、虚拟机、库存等信息。它最初是由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
postgres@ubuntu2004:~$ psql
您应该获得以下输出:
psql (12.2 (Ubuntu 12.2-4))
Type "help" for help.
接下来,使用以下命令为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
postgres@ubuntu2004:~$ 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
您应该获得以下输出:
wcq@L2)eTDpo(k^f4Sm9bariUnK0syCPMGEIjW6XV_8l5xhB7z
接下来,将目录更改为netbox并重命名示例配置文件:
cd netbox
mv configuration.example.py configuration.py
接下来,编辑Netbox配置文件并定义数据库,密钥和允许的主机:
nano configuration.py
进行以下修改:

保存并关闭文件,然后使用以下命令安装所有Python依赖项:
pip3 install -r /opt/netbox/requirements.txt
接下来,使用以下命令迁移数据库:
cd /opt/netbox/netbox/
python3 manage.py migrate
接下来,使用以下命令创建一个Netbox管理用户:
python3 manage.py createsuperuser
系统将要求您提供用户名和密码,如下所示:

接下来,使用以下命令收集静态文件:
python3 manage.py collectstatic
您应该看到以下输出:
976 static files copied to '/opt/netbox/netbox/static'.
五、安装和配置Gunicorn
Netbox是一个基于Django的应用程序。因此,您需要在系统中安装Gunicorn。您可以通过运行以下命令来安装它:
pip3 install gunicorn
安装Gunicorn之后,使用以下命令为Netbox创建一个新的Gunicorn配置文件:
nano /opt/netbox/gunicorn_config.py
添加以下行:
command = '/usr/local/bin/gunicorn'
pythonpath = '/opt/netbox/netbox'
bind = 'your-server-ip:8001'
workers = 3
user = 'www-data'
完成后保存并关闭文件。
六、安装和配置Supervisor
Supervisor是一个客户端/服务器系统,允许您监视和控制NetBox服务。您可以使用以下命令为Netbox创建新的Supervisor配置文件:
nano /etc/supervisor/conf.d/netbox.conf
添加以下行:
[program:netbox]
[program:netbox]
command = gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
directory = /opt/netbox/netbox/
user = www-data
完成后,保存并关闭文件。然后,使用以下命令重新启动Supervisor服务:
systemctl restart supervisor
您还可以使用以下命令来验证Supervisor服务的状态:
systemctl status supervisor
您应该获得以下输出:

七、为NetBox配置Nginx
将Nginx配置为反向代理以访问端口80上的Netbox是一个好主意。您可以使用以下命令创建新的Nginx虚拟主机配置:
nano /etc/nginx/sites-available/netbox.conf
添加以下行:
server {
listen 80;
server_name your-server-ip;
client_max_body_size 25m;
location /static/ {
alias /opt/netbox/netbox/static/;
}
location / {
proxy_pass http://your-server-ip:8001;
}
}
保存并关闭文件。然后,创建一个指向/etc/nginx/sites-enabled/目录的符号链接:
ln -s /etc/nginx/sites-available/netbox.conf /etc/nginx/sites-enabled/
接下来,使用以下命令验证Nginx是否存在语法错误:
nginx -t
如果一切正常,您应该获得以下输出:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
最后,重新启动Nginx服务以实现更改。
systemctl restart nginx
您还可以使用以下命令验证Nginx:
systemctl status nginx
您应该获得以下输出:

此时,Nginx Web服务器已配置为在端口80上为Netbox提供服务。您现在可以继续访问Netbox Web界面。
八、访问Netbox Web界面
打开Web浏览器,然后访问URL http:// 你的服务器IP地址。您将打开以下界面:

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

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

总结
在本文中,如何使用Nginx在Ubuntu 20.04上安装Netbox就已经完成了。