如何在 Debian 11/Debian 10 上安装 NetBox IPAM |如何在 Debian 11/Debian 10 上安装 NetBox IPAM |如何在 Debian 11/Debian 10 上安装 NetBox IPAM |如何在 Debian 11/Debian 10 上安装 NetBox IPAM |
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

如何在 Debian 11/Debian 10 上安装 NetBox IPAM |

发表 admin at 2025年2月28日
类别
  • 未分类
标签

NetBox 是一个开源 IPAM/DCIM Web 应用程序,用于管理和记录计算机网络以及管理 IP 地址。它最初是由 DigitalOcean 的网络工程团队构思的。该工具是用 Django Python 框架编写的,并依赖 PostgreSQL 数据库进行数据存储。

NetBox 构建块:

  • IP 地址管理 (IPAM) – IP 网络和地址、VRF 和 VLAN
  • 设备架-按组和地点组织
  • 设备 – 设备类型及其安装位置
  • 连接 – 设备之间的网络、控制台和电源连接
  • 虚拟化 – 虚拟机和集群
  • 数据电路 – 长途通信电路和提供商
  • Secrets – 敏感凭证的加密存储

如果您有兴趣在其他系统上部署 Netbox,请查看:

  • 如何使用 Apache 和 Supervisord 在 CentOS 7 上安装 NetBox

以下是在 Debian Linux 上安装 Install NetBox 的步骤。

第1步:安装所需的依赖项

首先安装运行 NetBox 所需的所有依赖应用程序:

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

步骤 2:安装并配置 PostgreSQL

NetBox 使用 PostgreSQL 数据库服务器来存储其数据。因此在 Debian 10 上安装 PostgreSQL 服务器:

sudo apt update
sudo apt -y install postgresql-contrib postgresql-*-ip4r

为 NetBox 创建数据库和用户。

$ sudo -u postgres psql
CREATE DATABASE netbox;
CREATE USER netbox WITH PASSWORD 'StrongPassword';
GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
\q

确认您可以以 netbox 用户身份登录数据库。

$ psql -U netbox -h localhost -W
Password: 
psql (13.10 (Debian 13.10-0+deb11u1))
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.
netbox=> \q

步骤 3:安装并配置 Netbox

更改为 /opt/ 目录并克隆项目代码。

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

从提供的示例文件创建配置文件。

cd netbox/netbox/netbox/
sudo cp configuration_example.py configuration.py

编辑配置文件并设置允许的主机和数据库登录详细信息:

$ sudo vim configuration.py
....
ALLOWED_HOSTS = ['localhost']
....
DATABASE = {
     'NAME': 'netbox',             # Database name
     'USER': 'netbox',             # PostgreSQL username
     'PASSWORD': 'StrongPassword', # PostgreSQL password
     'HOST': 'localhost',          # Database server
     'PORT': '',                   # Database port (leave blank for default)
     'CONN_MAX_AGE': 300,          # Max database connection age
 }

生成 Django 密钥:

cd ../
sudo ./generate_secret_key.py

然后在文件 /opt/netbox/netbox/netbox/configuration.py 上设置密钥

例子 :

$ sudo vim /opt/netbox/netbox/netbox/configuration.py
SECRET_KEY = 'L2lyoE^*DN)6w3PK_d$-pe5ZS@XmMQ4J9g!cvF1V=n0juWiATR'

安装 Netbox 依赖项:

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

迁移数据库数据:

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

数据库迁移的示例输出。

Operations to perform:
  Apply all migrations: admin, auth, circuits, contenttypes, dcim, extras, ipam, secrets, sessions, taggit, tenancy, users, virtualization
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying taggit.0001_initial... OK
  Applying taggit.0002_auto_20150616_2121... OK
  Applying tenancy.0001_initial_squashed_0005_change_logging... OK
  Applying dcim.0001_initial... OK
  Applying ipam.0001_initial... OK
  Applying dcim.0002_auto_20160622_1821... OK
  Applying extras.0001_initial_squashed_0013_objectchange... OK
  Applying ipam.0002_vrf_add_enforce_unique... OK
  Applying dcim.0003_auto_20160628_1721_squashed_0010_devicebay_installed_device_set_null... OK
  Applying ipam.0003_ipam_add_vlangroups_squashed_0011_rir_add_is_private... OK
  Applying dcim.0011_devicetype_part_number_squashed_0022_color_names_to_rgb... OK
  Applying ipam.0012_services_squashed_0018_remove_service_uniqueness_constraint... OK
  Applying dcim.0023_devicetype_comments_squashed_0043_device_component_name_lengths... OK
  Applying virtualization.0001_virtualization... OK
  Applying ipam.0019_virtualization_squashed_0020_ipaddress_add_role_carp... OK
  Applying dcim.0044_virtualization_squashed_0061_platform_napalm_args... OK
  Applying extras.0014_configcontexts_squashed_0019_tag_taggeditem... OK
  Applying dcim.0062_interface_mtu_squashed_0065_front_rear_ports... OK
  Applying circuits.0001_initial_squashed_0006_terminations... OK
  Applying dcim.0066_cables...
    Adding console connections... 0 cables created
    Adding power connections... 0 cables created
    Adding interface connections... 0 cables created
 OK
  Applying circuits.0007_circuit_add_description_squashed_0017_circuittype_description...
    Adding circuit terminations... 0 cables created
 OK
  Applying tenancy.0006_custom_tag_models... OK
  Applying virtualization.0002_virtualmachine_add_status_squashed_0009_custom_tag_models... OK
  Applying secrets.0001_initial_squashed_0006_custom_tag_models... OK
  Applying ipam.0021_vrf_ordering_squashed_0025_custom_tag_models... OK
  Applying dcim.0067_device_type_remove_qualifiers_squashed_0070_custom_tag_models... OK
  Applying extras.0020_tag_data_squashed_0021_add_color_comments_changelog_to_tag... OK
  Applying dcim.0071_device_components_add_description_squashed_0088_powerfeed_available_power...
Updating cable device terminations...
 OK
  Applying dcim.0089_deterministic_ordering... OK
  Applying dcim.0090_cable_termination_models... OK
  Applying extras.0022_custom_links_squashed_0034_configcontext_tags... OK
  Applying extras.0035_deterministic_ordering... OK
  Applying extras.0036_contenttype_filters_to_q_objects... OK
  Applying ipam.0026_prefix_ordering_vrf_nulls_first_squashed_0032_role_description... OK
  Applying ipam.0033_deterministic_ordering... OK
  Applying secrets.0007_secretrole_description... OK
  Applying sessions.0001_initial... OK
  Applying taggit.0003_taggeditem_add_unique_index... OK
  Applying users.0001_api_tokens_squashed_0003_token_permissions... OK
  Applying virtualization.0010_cluster_add_tenant_squashed_0012_vm_name_nonunique... OK
  Applying virtualization.0013_deterministic_ordering... OK

创建管理员用户:

$ sudo python3 manage.py createsuperuser
Username (leave blank to use 'root'): admin
Email address: [email 
Password: <Enter Password>
Password (again): <Re-enter Password>
Superuser created successfully.

移动静态文件

$ cd /opt/netbox/netbox
$ sudo python3 manage.py collectstatic
280 static files copied to '/opt/netbox/netbox/static'.

第四步:安装并配置gunicorn

使用pip3安装gunicorn:

$ sudo pip3 install gunicorn
Requirement already satisfied: gunicorn in /usr/local/lib/python3.9/dist-packages (20.1.0)
Requirement already satisfied: setuptools>=3.0 in /usr/lib/python3/dist-packages (from gunicorn) (52.0.0)

为 Netbox 配置 Gunicorn:

cat <<EOF | sudo tee /opt/netbox/gunicorn_config.py
command = '/usr/local/bin/gunicorn'
pythonpath = '/opt/netbox/netbox'
bind = 'localhost:8085'
workers = 3
user = 'www-data'
EOF

第5步:配置supervisord

创建supervisord配置文件:

cat <<EOF | sudo tee /etc/supervisor/conf.d/netbox.conf
[program:netbox]
command = gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
directory = /opt/netbox/netbox/
user = www-data
EOF

重新启动并启用supervisord 服务以在引导时启动。

sudo systemctl restart supervisor.service
sudo systemctl enable supervisor.service

状态应显示正在运行并带有 netbox 输出:

$  systemctl status  supervisor
● supervisor.service - Supervisor process control system for UNIX
     Loaded: loaded (/lib/systemd/system/supervisor.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2023-05-02 23:17:36 UTC; 6s ago
       Docs: http://supervisord.org
   Main PID: 15436 (supervisord)
      Tasks: 5 (limit: 4553)
     Memory: 272.2M
        CPU: 4.089s
     CGroup: /system.slice/supervisor.service
             ├─15436 /usr/bin/python3 /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
             ├─15521 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
             ├─15522 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
             ├─15523 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
             └─15524 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi

May 02 23:17:36 debian11 systemd[1]: Started Supervisor process control system for UNIX.
May 02 23:17:36 debian11 supervisord[15436]: 2023-05-02 23:17:36,805 CRIT Supervisor is running as root.  Privileges were not dropped because no user is specified in the config file.  If you intend t>
May 02 23:17:36 debian11 supervisord[15436]: 2023-05-02 23:17:36,805 INFO Included extra file "/etc/supervisor/conf.d/netbox.conf" during parsing
May 02 23:17:36 debian11 supervisord[15436]: 2023-05-02 23:17:36,808 INFO RPC interface 'supervisor' initialized
May 02 23:17:36 debian11 supervisord[15436]: 2023-05-02 23:17:36,808 CRIT Server 'unix_http_server' running without any HTTP authentication checking
May 02 23:17:36 debian11 supervisord[15436]: 2023-05-02 23:17:36,808 INFO supervisord started with pid 15436
May 02 23:17:37 debian11 supervisord[15436]: 2023-05-02 23:17:37,813 INFO spawned: 'netbox' with pid 15521
May 02 23:17:39 debian11 supervisord[15436]: 2023-05-02 23:17:39,140 INFO success: netbox entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

第 6 步:配置 Nginx Web 服务器

让我们配置 Nginx Web 服务器来帮助我们通过域名访问 Netbox,而不是指定 IP 地址和端口。

为 Netbox 创建新的 Nginx 配置文件。

sudo vim /etc/nginx/conf.d/netbox.conf

有以下数据。

server {
    listen 80;
    server_name netbox.example.com;
    client_max_body_size 25m;

    location /static/ {
        alias /opt/netbox/netbox/static/;
    }

    location / {
        proxy_pass http://localhost:8085;
    }
}

检查 Nginx 配置语法并重新启动其服务

$ sudo  nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

如果OK,重启Nginx服务

sudo systemctl restart nginx

第 7 步:访问 Netbox Web UI

打开默认的 Web 浏览器并打开 Netbox 服务器主机名。要进行更改,请使用之前创建的管理员用户登录。

就是这样!...您有 NetBox 仪表板。

享受使用 Netbox 记录您的网络基础设施的乐趣。访问 NetBox 文档以了解有关这款出色产品的更多信息。

您还可以检查:

  • 在 Debian 上安装和配置 phpIPAM
  • 如何在 Ubuntu 上安装 RackTables
©2015-2025 Norria support@norria.com