Установка NetBox · 7 min read · Sep 12, 2025

Как установить NetBox IRM (Инструмент моделирования ресурсов инфраструктуры) на сервер Ubuntu 24.04

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

NetBox был создан в веб-фреймворке Python Django с PostgreSQL в качестве базы данных по умолчанию, и установка NetBox довольно похожа на установку других веб-приложений на Python Django.

Этот учебник покажет вам, как установить Netbox IRM на сервер Ubuntu 24.04 с PostgreSQL в качестве базы данных и Apache в качестве обратного прокси. Вы также защитите Netbox с помощью HTTPS через Certbot и Letsencrypt.

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

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

  • Сервер Ubuntu 24.04
  • Пользователь без прав root с правами администратора
  • Доменное имя, указывающее на IP-адрес сервера

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

Чтобы установить Netbox, вы должны убедиться, что зависимости установлены на вашем сервере Ubuntu. Это включает Python3, сервер PostgreSQL, веб-сервер Apache, Redis и системные библиотеки. В этом разделе вы установите эти пакеты с помощью менеджера пакетов APT.

Сначала выполните следующую команду, чтобы обновить индекс пакетов Ubuntu.

sudo apt update

После обновления установите зависимости для Netbox с помощью следующей команды. В этом примере вы установите PostgreSQL, Apache, Python, Redis, Certbot, зависимости для сборки и некоторые библиотеки.

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

Введите ‘ Y ‘, чтобы подтвердить установку.

install deps

После завершения установки выполните команду ‘systemctl’ ниже, чтобы проверить статус веб-сервера Apache.

sudo systemctl is-enabled apache2  
sudo systemctl status apache2

В следующем выводе вы можете увидеть, что Apache работает и включен.

check apache2

Наконец, проверьте статус сервера PostgreSQL с помощью следующей команды:

sudo systemctl is-enabled postgresql  
sudo systemctl status postgresql

В выводе ниже вы можете увидеть, что PostgreSQL включен и работает со статусом exited (systemd не может найти службу для мониторинга).

check service postgresql

Настройка PostgreSQL

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

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

sudo -u postgres psql

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

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

После создания базы данных и пользователя проверьте список баз данных и пользователей в PostgreSQL с помощью следующей команды.

\l  
\du

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

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

list databases

list users

Скачивание и настройка Netbox

Теперь, когда база данных PostgreSQL готова, вы загрузите и установите Netbox на свой компьютер с Ubuntu. Вы настроите доменное имя, секретный ключ и базу данных для Netbox.

Сначала выполните команду ниже, чтобы создать нового пользователя ‘netbox’ на вашем компьютере с Ubuntu.

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

Теперь выполните команду ниже, чтобы загрузить исходный код Netbox с помощью команды ‘ git ‘, и измените владельца на пользователя ‘ netbox ‘.

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

Перейдите в директорию ‘ /opt/netbox/netbox/netbox ‘ и выполните файл ‘ generate_secret_key.py ‘. Скопируйте секретный ключ в свои заметки.

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

Далее скопируйте файл ‘ configuration.py ‘ и измените его с помощью редактора ‘ nano ‘.

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

Добавьте свой локальный IP-адрес и доменное имя в ‘ ALLOWED_HOSTS ‘.

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

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

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

Вставьте свой секретный ключ в раздел ‘ SECRET_KEY ‘.

SECRET_KEY = '98%D9uh8S%)T0QhQ@Z3zYf%Hik^CqWJ)Uwz%0J7TZUztmNiitG'

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

Миграция Netbox и настройка администратора

Теперь, когда вы настроили Netbox с сервером PostgreSQL, вы готовы мигрировать базу данных и создать администратора для установки Netbox.

Выполните скрипт ‘ upgrade.sh ‘ с помощью команды ниже. Это создаст среду Python, установит зависимости для Netbox, мигрирует базу данных Netbox, подключится к Redis и затем сгенерирует статические файлы.

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

netbox configure

Ниже вы можете увидеть миграцию базы данных для Netbox.

migrate

И ниже, когда ‘ manage.py ‘ генерирует статические файлы.

После завершения процесса вам нужно создать нового администратора для Netbox через скрипт ‘ manage.py ‘.

static files

Выполните следующую команду, чтобы активировать виртуальную среду Netbox. После активации ваша оболочка станет такой, как ‘ (venv) user@hostname ‘.

source /opt/netbox/venv/bin/activate

Перейдите в директорию ‘ /opt/netbox/netbox ‘ и выполните скрипт ‘ manage.py ‘ следующим образом:

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

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

create admin

После завершения выполните команду ‘ deactivate ‘, чтобы выйти из виртуальной среды Netbox.

Запуск Netbox как службы

В этом разделе вы скопируете конфигурации Netbox, которые будут использоваться для запуска Netbox как службы systemd. Вам нужно убедиться, что Netbox работает под Gunicorn, а затем скопировать файлы службы Netbox в директорию ‘ /etc/systemd/system ‘.

Сначала скопируйте скрипт ‘ gunicorn.py ‘ в директорию ‘ /opt/netbox ‘. Этот скрипт содержит конфигурацию для запуска Netbox под сервером Python WSGI.

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

Теперь выполните команду ниже, чтобы скопировать файлы службы для Netbox в директорию ‘ /etc/systemd/system ‘ и перезагрузить менеджер systemd.

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

После перезагрузки systemd выполните команду ‘ systemctl ‘ ниже, чтобы запустить и включить службы Netbox.

sudo systemctl enable --now netbox netbox-rq netbox-housekeeping

Наконец, проверьте службы Netbox, чтобы убедиться, что они работают, с помощью следующей команды.

sudo systemctl status netbox netbox-rq netbox-housekeeping

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

netbox

Для службы ‘ netbox-rq ‘ вы должны получить вывод, похожий на этот:

netbox-rq

Наконец, ‘ netbox-housekeeping ‘ со статусом ‘ dead ‘, потому что он будет работать как таймер.

netbox-housekeeping

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

На данный момент Netbox работает в фоновом режиме как служба под сервером Python WSGI. Чтобы сделать его доступным извне, вам нужно настроить Apache как обратный прокси. Перед этим вам также нужно сгенерировать SSL-сертификаты для защиты установки Netbox.

Сначала выполните команду ниже, чтобы остановить службу ‘ apache2 ‘.

sudo systemctl stop apache2

Теперь сгенерируйте SSL-сертификаты от Letsencrypt с помощью команды ‘ certbot ‘ ниже. Убедитесь, что вы изменили доменное имя и адрес электронной почты на свои данные.

sudo certbot certonly --standalone --preferred-challenges http -d netbox.howtoforge.local

После завершения процесса ваши SSL-сертификаты будут доступны в директории ‘ /etc/letsencrypt/live/domain.com ‘.

Далее скопируйте конфигурацию Apache для Netbox в файл ‘ /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

Замените доменное имя в опции ‘ ServerName ‘ и измените путь к вашим SSL-сертификатам.

  
# ИЗМЕНИТЕ ЭТО НА ИМЯ ВАШЕГО СЕРВЕРА  
ServerName netbox.howtoforge.local  
  
...  
  
  
  
ProxyPreserveHost On  
  
# ИЗМЕНИТЕ ЭТО НА ИМЯ ВАШЕГО СЕРВЕРА  
ServerName netbox.howtoforge.local  
  
SSLEngine on  
SSLCertificateFile /etc/letsencrypt/live/netbox.howtoforge.local/fullchain.pem  
SSLCertificateKeyFile /etc/letsencrypt/live/netbox.howtoforge.local/privkey.pem  
...  

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

Теперь выполните команду ниже, чтобы активировать модули Apache и файл виртуального хоста ‘ netbox.conf ‘.

sudo a2enmod ssl proxy proxy_http headers rewrite  
sudo a2ensite netbox.conf

После активации виртуального хоста выполните следующую команду, чтобы перезапустить Apache и применить ваши изменения. С этим ваша установка Netbox должна работать под обратным прокси Apache с включенным HTTPS.

sudo systemctl restart apache2

Наконец, посетите https://netbox.howtoforge.local/ с помощью вашего веб-браузера, и вы будете перенаправлены на страницу входа в Netbox. Введите ваше имя администратора и пароль, затем нажмите Войти.

login

Вы увидите следующую панель управления Netbox, если у вас есть правильные учетные данные администратора.

dashboard

Нажмите на меню Admin > System, чтобы увидеть информацию о вашей установке Netbox. В следующем выводе вы можете увидеть, что установлена версия Netbox v4.1.7 с базой данных PostgreSQL.

dashboard

Заключение

Поздравляем! Вы завершили установку Netbox IRM на сервер Ubuntu 24.04. Вы запустили Netbox с PostgreSQL в качестве сервера базы данных и Apache в качестве обратного прокси. Вы также защитили Netbox с помощью HTTPS через Certbot.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.