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

加载更多搜索结果...

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

如何在 Rocky Linux 8/CentOS 8 上安装 NetBox IPAM |

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

Netbox 是一个免费的开源工具,用于通过网络管理和记录计算机网络。通过创建数据中心中每个设备的虚拟实施,有助于减少组织中繁琐的联网任务。过去,这项任务是通过在纸上绘制网络结构来完成的,但使用 NetBox,可以通过网络可视化有组织且可呈现的操作。

Netbox 用 Django 编写,并使用 PostgreSQL 数据库来记录计算机网络并管理 IP 地址。它具有以下令人惊奇的功能:

  • IPAM——IP地址管理
  • VLAN管理
  • 机架标高
  • VRF管理
  • 多站点(租赁)
  • 连接管理 – 接口/控制台/电源
  • 徽标等的定制标头
  • 电路供应商管理
  • 单一融合数据库
  • DCIM——数据中心基础设施管理
  • 报告警报

1.更新系统并安装依赖项

在本指南中,我们将在 Rocky Linux 8 上安装和配置 NetBox IPAM 工具。对于本指南,您将需要:

  • Rocky Linux 8 系统。
  • 具有 sudo 权限的用户。
  • Python 3.8 及以上版本
  • PostgreSQL 10
  • 雷迪斯4.0

更新您的系统。

sudo yum update -y

安装安装依赖项所需的 EPEL 存储库。

sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

安装所需的依赖项。

sudo yum install -y gcc libxml2-devel libxslt-devel libffi-devel libpq-devel openssl-devel redhat-rpm-config git vim

将 SELinux 设置为宽容模式,因为我们将使用 TCP 端口。

sudo sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
cat /etc/selinux/config | grep SELINUX=

2.在Rocky Linux 8/CentOS 8上安装Python

在本指南中,我们将安装 Python 3.9,因为此版本的 Netbox IPAM 需要 Python 3.7 及更高版本。 Python 3.9 在默认存储库中可用,可以使用以下命令安装:

使用以下命令在 Rocky Linux 8|CentOS 8 上安装 Python 3.9:

sudo yum install python3.9 

依赖树;

Dependencies resolved.
================================================================================
 Package            Arch   Version                              Repo       Size
================================================================================
Installing:
 python39           x86_64 3.9.7-1.module_el8.6.0+930+10acc06f  appstream  33 k
Installing dependencies:
 python39-libs      x86_64 3.9.7-1.module_el8.6.0+930+10acc06f  appstream 8.2 M
 python39-pip-wheel noarch 20.2.4-6.module_el8.6.0+930+10acc06f appstream 1.3 M
 python39-setuptools-wheel
                    noarch 50.3.2-4.module_el8.6.0+930+10acc06f appstream 497 k
Installing weak dependencies:
 python39-pip       noarch 20.2.4-6.module_el8.6.0+930+10acc06f appstream 2.0 M
 python39-setuptools
                    noarch 50.3.2-4.module_el8.6.0+930+10acc06f appstream 871 k
Enabling module streams:
 python39                  3.9                                                 

Transaction Summary
================================================================================
Install  6 Packages

Total download size: 13 M
Installed size: 45 M
Is this ok [y/N]: y

确定 python 的路径。

$ whereis python3.9
python3: /usr/bin/python3.6 /usr/bin/python3.6m /usr/bin/python3 /usr/bin/python3.9 /usr/lib/python3.6 /usr/lib/python3.9 /usr/lib64/python3.6 /usr/lib64/python3.9 /usr/include/python3.6m /usr/include/python3.9 /usr/share/man/man1/python3.1.gz

创建到 /usr/bin/python 的符号链接。如果已经存在链接,请删除现有文件 sudo rm -rf /usr/bin/python3 和 pip3

sudo ln -fs /usr/bin/python3.9 /usr/bin/python3
sudo ln -fs /usr/bin/pip3.9 /usr/bin/pip3

验证安装的版本。

$ python3 --version
Python 3.9.13

3.安装并配置PostgreSQL数据库服务器

由于Netbox IPAM使用PostgreSQL数据库,因此需要我们将其安装在Rocky Linux上。首先,检查最新的可用版本。

$ sudo dnf module list postgresql
Rocky Linux 8 - AppStream
Name         Stream   Profiles             Summary                              
postgresql   9.6      client, server [d]   PostgreSQL server and client module  
postgresql   10 [d]   client, server [d]   PostgreSQL server and client module  
postgresql   12       client, server [d]   PostgreSQL server and client module  
postgresql   13       client, server [d]   PostgreSQL server and client module  

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

从输出中,我们将安装版本 13。如下启用它

$ sudo dnf module enable postgresql:13
......
Dependencies resolved.
================================================================================
 Package           Architecture     Version             Repository         Size
================================================================================
Enabling module streams:
 postgresql                         13                                         

Transaction Summary
================================================================================

Is this ok [y/N]: y

继续并安装已启用的 PostgreSQL 版本。

sudo dnf install postgresql-server

初始化 PostgreSQL。

sudo postgresql-setup --initdb

成功安装后,启动 PostgreSQL 并使其能够在引导时运行。

sudo systemctl start postgresql
sudo systemctl enable postgresql

现在为 NetBox IPAM 创建一个数据库。

sudo -u postgres psql

在 PostgreSQL shell 中,创建一个数据库,如下所示。

CREATE DATABASE netbox;
CREATE USER netbox WITH PASSWORD 'Passw0rd';
GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
\q

在 PostgreSQL 中启用密码登录。

sudo sed -i -e 's/ident/md5/' /var/lib/pgsql/data/pg_hba.conf
sudo systemctl restart postgresql

确认是否可以登录使用设置的密码创建的数据库。

$ psql -U netbox -h localhost -W
Password: <Input-Password>
psql (13.3)
Type "help" for help.

netbox=> \q

4.在Rocky Linux 8/CentOS 8上安装和配置Redis

所需Redis版本为4.0及以上,安装如下:

sudo yum install -y redis

启动并启用 Redis。

sudo systemctl start redis
sudo systemctl enable redis

检查安装的版本。

$ redis-server -v
Redis server v=5.0.3 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=9529b692c0384fb7

验证服务器状态。

$ redis-cli ping
PONG

5. 在 Rocky Linux 8/CentOS 8 上安装和配置 Netbox

现在我们已经到了本指南的核心部分,我们需要从 git 克隆 NetBox IPAM 并在 Rocky Linux 8|CentOS 8 上配置它。

首先,导航到 /opt/ 目录并克隆 NetBox。

sudo mkdir -p /opt/netbox/ && cd /opt/netbox/
sudo git clone -b master --depth 1 https://github.com/netbox-community/netbox.git .

创建 Netbox 用户。

sudo groupadd --system netbox
sudo adduser --system -g netbox netbox
sudo chown --recursive netbox /opt/netbox/netbox/media/

现在为 Netbox 创建一个配置文件。

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

现在编辑配置文件。

sudo vim configuration.py

如下编辑文件。

# Example: ALLOWED_HOSTS = ['netbox.example.com', 'netbox.internal.local']
ALLOWED_HOSTS = ['*']

# PostgreSQL database configuration.
DATABASE = {
    'NAME': 'netbox',                           # Database name you created
    'USER': 'netbox',                           # PostgreSQL username you created
    'PASSWORD': 'Passw0rd',               # PostgreSQL password you set
    'HOST': 'localhost',                        # Database server
    'PORT': '',                                 # Database port (leave blank for default)
    'CONN_MAX_AGE': 300,                        # Max database connection age
}

由于 Netbox 需要两个数据库用于任务和缓存,因此我们还将继续编辑 Redis 数据库。默认值没问题。

REDIS = {
    'tasks': {
        'HOST': 'localhost',      # Redis server
        'PORT': 6379,             # Redis port
        'PASSWORD': '',           # Redis password (optional)
        'DATABASE': 0,            # Database ID
        'SSL': False,             # Use SSL (optional)
    },
    'caching': {
        'HOST': 'localhost',
        'PORT': 6379,
        'PASSWORD': '',
        'DATABASE': 1,            # Unique ID for second database
        'SSL': False,
    }
}

生成 Django 密钥

现在生成 Django SECRET Key,如下所示。

python3 ../generate_secret_key.py

示例输出:

Tzvw(9w1tc2^lRzwLc@cDgdrX^3AwDDWXBgMM7OU$vR7LLAh#V

生成密钥后,继续并在 configuration.py 中进行设置,如下所示。

$ sudo vim /opt/netbox/netbox/netbox/configuration.py
# https://docs.djangoproject.com/en/stable/ref/settings/#std:setting-SECRET_KEY
SECRET_KEY = 'Tzvw(9w1tc2^lRzwLc@cDgdrX^3AwDDWXBgMM7OU$vR7LLAh#V'

运行升级脚本

升级脚本自动运行以下命令:

  • 创建Python环境并安装所有必需的Python包
  • 运行数据库架构迁移
  • 在本地构建文档(供离线使用)
  • 聚合磁盘上的静态资源文件

使用的命令如下:

sudo /opt/netbox/upgrade.sh

示例输出:

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 auth.0012_alter_user_first_name_max_length... OK
  Applying extras.0001_squashed... OK
  Applying tenancy.0001_squashed_0012... OK
  Applying tenancy.0002_tenant_ordering... OK
  Applying dcim.0001_squashed... OK
  Applying dcim.0002_squashed... OK
  Applying ipam.0001_squashed... OK
  Applying virtualization.0001_squashed_0022... OK
  Applying extras.0002_squashed_0059... OK
  Applying extras.0060_customlink_button_class... OK
...
Collecting static files (python3 netbox/manage.py collectstatic --no-input)...

478 static files copied to '/opt/netbox/netbox/static'.
Removing stale content types (python3 netbox/manage.py remove_stale_contenttypes --no-input)...
Removing expired user sessions (python3 netbox/manage.py clearsessions)...
Upgrade complete! Don't forget to restart the NetBox services:
  > sudo systemctl restart netbox netbox-rq

创建 Netbox 用户帐户。

下一步要求我们创建一个超级用户帐户,因为 Netbox 没有预定义的用户帐户。从 Netbox 目录执行命令

source /opt/netbox/venv/bin/activate
cd /opt/netbox/netbox
python3 manage.py createsuperuser

请按如下方式进行。

Username (leave blank to use 'thor'): admin
Email address: [email 
Password: 
Password (again): 
Superuser created successfully.

继续并安排内务管理任务。这可以处理重复的清理任务。

sudo ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping

测试安装。

现在测试该应用程序。但在此之前,请允许端口 8000 通过防火墙。

sudo firewall-cmd --add-port=8000/tcp --permanent
sudo firewall-cmd --reload

现在测试网络盒

$ python3 manage.py runserver 0.0.0.0:8000 --insecure
Performing system checks...

System check identified no issues (0 silenced).
May 05, 2022 - 15:52:46
Django version 4.0.4, using settings 'netbox.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.

现在您可以使用 URL http://IP_Address:8000 访问 Netbox。您还可以尝试使用创建的超级用户登录。

使用 CTL+C 停止服务器并按以下步骤操作。

安装并配置Gunicorn模块

Netbox 附带默认的 Gunicorn 配置,可以将其复制到 Netbox 路径,如下所示。

sudo cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py

您可能希望编辑该文件并为您的绑定 IP 和端口进行配置。

sudo vim /opt/netbox/gunicorn.py

在该文件中,添加以下行。

bind = '127.0.0.1:8001'

workers = 5

threads = 3

timeout = 120

# The maximum number of requests a worker can handle before being respawned
max_requests = 5000
max_requests_jitter = 500

创建 systemd 服务文件。

为了能够像管理其他系统服务一样管理 Netbox,我们需要创建系统文件。

sudo cp -v /opt/netbox/contrib/*.service /etc/systemd/system/
sudo systemctl daemon-reload

启动并启用 Netbox 服务。

sudo systemctl start netbox netbox-rq
sudo systemctl enable netbox netbox-rq

验证服务是否正在运行:

$ systemctl status netbox.service
● netbox.service - NetBox WSGI Service
   Loaded: loaded (/etc/systemd/system/netbox.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2022-05-05 12:07:27 EDT; 11s ago
     Docs: https://docs.netbox.dev/
 Main PID: 12914 (gunicorn)
    Tasks: 6 (limit: 23505)
   Memory: 384.4M
   CGroup: /system.slice/netbox.service
           ├─12914 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --c>
           ├─12916 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --c>
           ├─12917 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --c>
           ├─12918 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --c>
           ├─12919 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --c>
           └─12920 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --c

该服务应在端口 8001 上运行。

$ ss -tunelp | grep 8001
tcp   LISTEN 0      128        127.0.0.1:8001      0.0.0.0:*    uid:993 ino:24304646 sk:1e <->

6.为Netbox IPAM安装并配置Nginx

在本指南中,我们将展示 Nginx Web 服务器的配置。使用以下命令在 Rocky Linux 8 上安装 Nginx Web 服务器。

sudo yum -y install nginx

我们首先为我们的网页创建一个虚拟主机文件。

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

在该文件中,添加以下行。将 netbox.example.com 替换为您的 FQDN 或 IP_address。

server {
    listen 80;
    server_name netbox.example.com;
    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;
    }
}

检查创建的文件的语法。

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

启动并启用 Nginx 在启动时运行。

sudo systemctl restart nginx
sudo systemctl enable nginx

在 SELinux 上允许端口 8001。

sudo semanage port -a -t dns_port_t -p tcp 8001
sudo setsebool -P httpd_can_network_connect 1

如果您使用firewalld,请允许端口通过防火墙。

sudo firewall-cmd --permanent --add-port={80,443}/tcp
sudo firewall-cmd --reload

7. 访问 Netbox IPAM 工具 Web UI

一切配置完成后,我们现在可以使用 URL http://Hostname 或 http://IP_Address 访问 Netbox IPAM Web 界面。您将被授予此页面。

要进行更改,您需要登录。点击右上角的“登录”。输入在上面第 2 步中为超级用户帐户创建的凭据。

成功登录后,您将看到此窗口。

在这里,您可以导航到左侧的面板,如下所示。

从该面板中,您可以添加设备、连接、IPAM、集群、电路、电源和其他选项。这仅仅意味着使用 Netbox,人们可以通过在此处添加所需的设备来全面管理数据中心。例如,要添加设备,您需要输入以下信息。

结论

现在就这样。我希望您对本关于如何在 Rocky Linux 8 上安装和配置 NetBox IPAM 工具的指南感到愉快。

这真是学到了很多东西!在此页面上查看更多内容。

  • 在 Ubuntu 上安装和配置 NetBox IPAM 和 DCIM 工具
  • 如何在 Debian 上安装 NetBox IPAM
  • 使用 Apache 和 Supervisord 在 CentOS 7 上安装 NetBox
©2015-2025 Norria support@norria.com