Установка NetBox · 9 min read · Oct 31, 2025

Как установить NetBox IRM на Debian 12

NetBox — это моделирование ресурсов инфраструктуры (IRM), предназначенное для автоматизации сети и проектирования инфраструктуры. Изначально он был создан командой DigitalOcean, а теперь стал проектом с открытым исходным кодом, выпущенным под лицензией Apache 2. NetBox был создан в веб-фреймворке Python Django с PostgreSQL в качестве базы данных по умолчанию, и установка NetBox довольно похожа на другие веб-приложения на Python Django.

В этом руководстве мы покажем вам, как установить программное обеспечение NetBox IRM на сервер Debian 12 шаг за шагом. Мы покажем вам установку NetBox с PostgreSQL в качестве сервера базы данных и веб-сервера Apache2 в качестве обратного прокси. Вы также защитите свою установку NetBox с помощью сертификатов SSl/TLS.

Предварительные требования

Перед тем как продолжить, убедитесь, что у вас есть следующее:

  • Сервер Debian 12.
  • Пользователь, не являющийся root, с правами администратора.
  • Публичное или локальное доменное имя, указывающее на IP-адрес сервера.

Установка зависимостей

NetBox — это веб-приложение, основанное на веб-фреймворке Python Django. Его можно установить с сервером базы данных PostgreSQL и сервером Redis для управления кэшом.

На следующем шаге вы установите те зависимости, которые нужны NetBox, а также установите веб-сервер Apache2, который будет использоваться в качестве обратного прокси для вашей установки NetBox.

Чтобы начать, выполните следующую команду apt, чтобы обновить ваш репозиторий Debian.

sudo apt update

обновить репозиторий

Затем установите пакетные зависимости для вашей установки NetBox IRM.

sudo apt install apache2 postgresql postgresql-common libpq-dev redis-server git python3 python3-pip python3-venv python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev  libssl-dev zlib1g-dev

Введите y, чтобы продолжить установку зависимостей, таких как веб-сервер Apache2, сервер базы данных PostgreSQL, Redis, Git, пакеты Python3 и некоторые дополнительные системные библиотеки.

установить зависимости

После установки зависимостей проверьте каждую зависимость, выполнив команду ниже.

Проверьте службу apache2, чтобы убедиться, что служба включена и работает.

sudo systemctl is-enabled apache2  
sudo systemctl status apache2

Если apache2 работает и включен, вы должны получить вывод, похожий на следующий:

проверить apache2

Проверьте службу PostgreSQL, чтобы убедиться, что служба работает и включена.

sudo systemctl is-enabled postgresql  
sudo systemctl status postgresql

Служба PostgreSQL должна работать и быть включенной, как показано ниже:

проверить postgresql

Теперь проверьте службу Redis, чтобы убедиться, что служба работает и включена.

sudo systemctl is-enabled redis  
sudo systemctl status redis

Служба Redis должна работать и быть включенной, как показано ниже

проверить redis

Наконец, проверьте версию Python, используя команду ниже. Последняя версия NetBox IRM поддерживает Python v3.9, 3.10 и 3.11.

python3 --version

Вы должны увидеть, что Python 3.11 установлен на вашем Debian.

Настройка сервера PostgreSQL

После установки зависимостей вы создадите новую базу данных PostgreSQL и пользователя, которые будет использовать NetBox. Для этого вам нужно войти на сервер PostgreSQL через командную строку psql.

Войдите на сервер PostgreSQL, выполнив команду ниже.

sudo -u postgres psql

Запустите следующие запросы, чтобы создать нового пользователя netbox с паролем p4ssw0rd. Затем создайте новую базу данных netboxdb с владельцем netbox.

CREATE USER netbox LOGIN CREATEDB PASSWORD 'p4ssw0rd';  
CREATE DATABASE netboxdb OWNER netbox;

создать пользователя базы данных

После этого проверьте список пользователей и баз данных на вашем PostgreSQL, выполнив команду ниже.

l  
u

Вы должны увидеть базу данных netboxdb и пользователя netbox, созданных на вашем сервере PostgreSQL.

проверить пользователя базы данных

Введите quit, чтобы выйти из сервера PostgreSQL.

Далее войдите в PostgreSQL, используя нового пользователя netbox для базы данных netboxdb. Это обеспечит возможность подключения пользователя netbox к базе данных netboxdb.

sudo -u postgres psql --username netbox --password --host localhost netboxdb

После подключения проверьте ваше соединение, используя следующий запрос.

cnnfo

В следующем выводе вы должны увидеть, что вы подключены к базе данных netboxdb через пользователя netbox.

проверить соединение

Введите quit снова, чтобы выйти из вашего сервера PostgreSQL.

Настройка сервера Redis

С созданной базой данных и пользователем PostgreSQL следующим шагом будет настройка вашего сервера Redis, который будет использоваться для управления кэшем для NetBox. Для этого вы измените конфигурацию Redis /etc/redis/redis.conf и проверите ваши изменения через redis-cli.

Откройте стандартную конфигурацию Redis /etc/redis/redis.conf с помощью следующей команды редактора nano.

sudo nano /etc/redis/redis.conf

Уберите комментарий с опции requirepass и введите ваш пароль, который будет использоваться для защиты вашего сервера Redis.

requirepass p4ssw0rdNetBox

Когда закончите, сохраните и выйдите из файла.

Теперь выполните следующую команду systemctl, чтобы перезапустить службу redis и применить изменения, которые вы внесли.

sudo systemctl restart redis

Чтобы убедиться, что все работает, вы можете проверить Redis через redis-cli. Получите доступ к вашему серверу Redis, используя команду redis-cli ниже.

redis-cli

Аутентифицируйтесь на сервере Redis, используя следующий запрос AUTH, и обязательно измените пароль.

AUTH p4ssw0rdNetBox

После аутентификации вы должны получить вывод OK.

Теперь выполните запрос PING ниже, чтобы убедиться, что ваше соединение успешно.

PING

Если успешно, вы должны получить вывод PONG от сервера Redis.

настроить redis

Установка NetBox IRM

В следующем разделе вы загрузите и установите NetBox IRM на вашу систему. Вы загрузите исходный код NetBox через Git, затем настроите его, изменив конфигурацию NetBox, добавив сервер базы данных PostgreSQL и Redis, а затем создадите администратора для NetBox.

Сначала выполните команду ниже, чтобы создать нового системного пользователя netbox, который будет использоваться для запуска установки NetBox.

sudo useradd -r -d /opt/netbox -s /usr/sbin/nologin netbox

Скачайте исходный код NetBox IRM через git и измените владельца директории /opt/netbox на пользователя netbox.

cd /opt; sudo git clone -b master --depth 1 https://github.com/netbox-community/netbox.git  
sudo chown -R netbox:netbox /opt/netbox

создать пользователя загрузить netbox

Далее переместите вашу рабочую директорию в /opt/netbox и сгенерируйте секретный ключ NetBox с помощью скрипта generate_secret_key.py. Обязательно скопируйте сгенерированный секретный ключ, который будет использоваться для вашей установки NetBox.

cd /opt/netbox/netbox/netbox  
sudo -u netbox python3 ../generate_secret_key.py

Скопируйте стандартную конфигурацию configuration_example.py в configuration.py, затем откройте новый файл configuration.py с помощью следующей команды редактора nano.

sudo -u netbox cp configuration_example.py configuration.py  
sudo -u netbox nano configuration.py

В разделе ALLOWED_HOSTS добавьте ваше доменное имя или IP-адрес вашего сервера.

ALLOWED_HOSTS = ['netbox.howtoforge.local', '192.168.10.15']

Введите данные вашей базы данных PostgreSQL в раздел DATABASE, включая имя базы данных, пользователя, пароль, хост и порт.

# конфигурация базы данных  
DATABASE = {  
    'NAME': 'netboxdb',               # Имя базы данных  
    'USER': 'netbox',               # Имя пользователя PostgreSQL  
    'PASSWORD': 'p4ssw0rd', # Пароль PostgreSQL  
    'HOST': 'localhost',            # Сервер базы данных  
    'PORT': '',                     # Порт базы данных (оставьте пустым для значения по умолчанию)  
    'CONN_MAX_AGE': 300,            # Максимальный возраст соединения с базой данных (секунды)  
}

В разделе REDIS введите данные вашего сервера Redis для задач и параметров кэширования.

# Конфигурация кэша Redis  
REDIS = {  
    'tasks': {  
        'HOST': 'localhost',      # Сервер Redis  
        'PORT': 6379,             # Порт Redis  
        'PASSWORD': 'p4ssw0rdNetBox',           # Пароль Redis (необязательно)  
        'DATABASE': 0,            # ID базы данных  
        'SSL': False,             # Использовать SSL (необязательно)  
    },  
    'caching': {  
        'HOST': 'localhost',  
        'PORT': 6379,  
        'PASSWORD': 'p4ssw0rdNetBox',  
        'DATABASE': 1,            # Уникальный ID для второй базы данных  
        'SSL': False,  
    }  
}

Наконец, введите ваш секретный ключ в разделе SECRET_KEY.

# Секретный ключ  
SECRET_KEY = 'ZjYbgz$)j!NnqJcZLR!NB2BCz4(Yyk=o^Xr(1sTIrM)ZyiE%nk'

Когда закончите, сохраните и выйдите из файла.

Далее выполните скрипт /opt/netbox/upgrade.sh, чтобы начать установку NextBox. Это создаст новую виртуальную среду Python, установит некоторые пакеты и библиотеки Python, выполнит миграцию базы данных на ваш сервер PostgreSQL, а также сгенерирует статические файлы для NextBox.

sudo -u netbox /opt/netbox/upgrade.sh

Ниже приведен аналогичный вывод, который вы получите в процессе.

установка netbox

Процесс миграции базы данных.

миграция базы данных

Процесс генерации статических файлов.

генерация статических файлов

Ниже приведен вывод, когда установка завершена.

установка завершена

После настройки NetBox вы создадите администратора для NetBox. Для этого войдите в виртуальную среду Python, которая была создана, используя следующую команду.

source /opt/netbox/venv/bin/activate

Перейдите в директорию /opt/netbox/netbox и выполните скрипт manage.py, чтобы создать администратора NetBox.

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

Когда вас спросят, введите адрес электронной почты администратора, имя пользователя и пароль.

создать суперпользователя

Далее снова выполните manage.py, чтобы проверить вашу установку NetBox. С этим вы запустите NetBox на вашем локальном IP-адресе с портом 8000.

python3 manage.py runserver 0.0.0.0:8000 --insecure

запуск netbox

Откройте веб-браузер и перейдите по IP-адресу вашего сервера, за которым следует порт 8000, например http://192.168.10.15:8000/. Если ваша установка успешна, вы должны увидеть индексную страницу NetBox IRM, и оттуда нажмите кнопку Войти в правом верхнем углу.

ДОМ NETBOX

Введите вашего администратора и пароль, который вы создали, затем нажмите Войти.

ВОЙТИ В NETBOX

Если все пройдет хорошо, вы должны увидеть панель управления NetBox, как показано ниже:

панель управления netbox

Вернитесь в ваш терминал и нажмите Ctrl+c, чтобы завершить процесс.

Запуск NetBox как службы Systemd

На данный момент вы установили NetBox IRM на вашем Debian. Чтобы упростить управление NetBox, вы будете запускать NetBox как службу systemd, что позволит вам управлять NetBox через утилиту systemctl.

Скопируйте файл /opt/netbox/contrib/gunicorn.py в /opt/netbox/gunicorn.py, затем откройте файл gunicorn.py с помощью команды редактора nano ниже.

sudo -u netbox cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py  
sudo -u netbox nano /opt/netbox/gunicorn.py

Измените опцию bind на следующую. Это запустит вашу установку NetBox на локальном хосте на порту 8001 через gunicorn.

bind = '127.0.0.1:8001'

Сохраните и закройте файл, когда закончите.

Далее скопируйте файлы службы systemd для NetBox в директорию /etc/systemd/system/. Это скопирует файл службы netbox, netbox-rq и netbox-housekeeping в директорию /etc/systemd/system/. Затем перезагрузите менеджер systemd, чтобы применить новые изменения в вашей системе.

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

Теперь вы можете запустить и включить как службу netbox, так и netbox-rq, используя команду systemctl ниже. После выполнения команды ваша установка NetBox будет работать в фоновом режиме как служба systemd.

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

Наконец, проверьте как службу netbox, так и netbox-rq, используя следующую команду.

sudo systemctl status netbox  
sudo systemctl status netbox-rq

Следующий вывод указывает на то, что служба netbox работает и включена.

проверить netbox

Ниже приведенный вывод подтверждает, что служба netbox-rq работает и включена.

netbox rq

Настройка Apache как обратного прокси

На следующем шаге вы настроите Apache2 как обратный прокси. Перед этим убедитесь, что у вас есть доменное имя, указывающее на IP-адрес вашего сервера, вы также можете использовать локальное доменное имя.

Если вы используете локальное доменное имя, вы можете выполнить следующую команду openssl для генерации SSL-сертификатов. Если вы используете публичное доменное имя, вы можете использовать Certbot для генерации SSL-сертификатов от Letsencrypt.

openssl req -x509 -newkey rsa:4096 -sha256 -days 365 \  
  -nodes -keyout /etc/ssl/private/netbox.key -out /etc/ssl/certs/netbox.crt -subj "/CN=netbox.howtoforge.local" \  
  -addext "subjectAltName=DNS:netbox.howtoforge.local,IP:192.168.10.15"

Теперь скопируйте пример конфигурации виртуального хоста Apache для NetBox в /etc/apache2/sites-available/netbox.conf. Затем измените файл /etc/apache2/sites-available/netbox.conf, используя следующую команду редактора nano.

sudo cp /opt/netbox/contrib/apache.conf /etc/apache2/sites-available/netbox.conf  
sudo nano /etc/apache2/sites-available/netbox.conf

Измените доменное имя на ваше доменное имя и измените путь к сертификатам SSL/TLS на правильный путь файла.

  
    # ИЗМЕНИТЕ ЭТО НА ИМЯ ВАШЕГО СЕРВЕРА  
    ServerName netbox.howtoforge.local  
  
    ...  
  
  
  
    ProxyPreserveHost On  
  
    # ИЗМЕНИТЕ ЭТО НА ИМЯ ВАШЕГО СЕРВЕРА  
    ServerName netbox.howtoforge.local  
  
    SSLEngine on  
    SSLCertificateFile /etc/ssl/certs/netbox.crt  
    SSLCertificateKeyFile /etc/ssl/private/netbox.key  
  
    ...  

Сохраните и выйдите из файла, когда закончите.

Теперь выполните следующую команду, чтобы включить некоторые модули Apache2, которые необходимы для NetBox.

sudo a2enmod ssl proxy proxy_http headers rewrite

После этого выполните следующую команду, чтобы активировать файл виртуального хоста netbox.conf и проверить ваши конфигурации Apache2, чтобы убедиться, что у вас правильный синтаксис.

sudo a2ensite netbox.conf  
sudo apachectl configtest

Если у вас правильный синтаксис Apache2, вы должны получить вывод Syntax OK.

apache2 netbox

Теперь выполните следующую команду, чтобы перезапустить службу Apache2 и применить изменения, которые вы внесли.

sudo systemctl restart apache2

Ваша установка NetBox должна быть доступна через доменное имя.

Откройте веб-браузер и перейдите по доменному имени вашей установки NetBox, например https://netbox.howtoforge.local/. Если все пройдет хорошо, вы должны увидеть индексную страницу NetBox, как показано ниже:

дом netbox

После входа в систему вы должны увидеть панель управления NetBox IRM, работающую с доменным именем под обратным прокси Apache2.

панель управления netbox

Заключение

В заключение, вы теперь установили NetBox IRM на сервер Debian 12 с сервером базы данных PostgreSQL и веб-сервером Apache2, используемым в качестве обратного прокси. Вы также защитили свою установку NetBox с помощью сертификатов SSL/TLS.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.