NetBox
NetBox — это инструмент управления IP-адресами (IPAM) и инфраструктурой центра обработки данных (DCIM) с открытым исходным кодом.
Установка
Установка базы данных PostgreSQL
Установить PostgreSQL:
# apt-get install postgresql17-server
Подготовить к запуску и настроить службы PostgreSQL (потребуется также создать пароль суперпользователя PostgreSQL):
- создать системные базы данных:
# /etc/init.d/postgresql initdb Введите новый пароль суперпользователя: Повторите его:
- включить по умолчанию и запустить службу:
# systemctl enable --now postgresql
Создать пользователя netbox (пароль необходимо запомнить) и базу данных netbox (под правами root):
# su - postgres -s /bin/sh -c 'createuser --no-superuser --no-createdb --no-createrole --encrypted --pwprompt netbox'
Введите пароль для новой роли:
Повторите его:
Пароль:
# su - postgres -s /bin/sh -c 'createdb -O netbox netbox'
Пароль:
Проверка состояния службы:
$ psql --username netbox --password --host localhost netbox
Пароль:
psql (17.5)
Введите "help", чтобы получить справку.
netbox=> \conninfo
Вы подключены к базе данных "netbox" как пользователь "netbox" (компьютер "localhost": адрес "127.0.0.1", порт "5432").
netbox=> \q
Установка Redis
Установить Redis:
# apt-get install redis
Запустить и добавить в автозагрузку:
# systemctl enable --now redis
Проверка состояния службы:
# redis-cli ping
PONG
Установка NetBox
Установить пакет netbox:
# apt-get install netbox
Внести изменения в файл /etc/netbox/configuration.py. Необходимо указать как минимум настройки подключения к базе данных и список допустимых имён хоста:
ALLOWED_HOSTS = ['netbox.test.alt', '192.168.0.44']
DATABASE = {
'ENGINE': 'django.db.backends.postgresql', # Database engine
'NAME': 'netbox', # Database name
'USER': 'netbox', # PostgreSQL username
'PASSWORD': 'netbox', # PostgreSQL password
'HOST': 'localhost', # Database server
'PORT': '', # Database port (leave blank for default)
'CONN_MAX_AGE': 300, # Max database connection age
}
ALLOWED_HOSTS = ['*']
Завершить установку NetBox:
- Создать таблицы в базе данных:
# cd /usr/share/netbox # python3 manage.py migrate
- Создать учётную запись администратора:
# python3 manage.py createsuperuser Username (leave blank to use 'root'): Email address: admin@test.alt Password: Password (again): Superuser created successfully.
Запустить и добавить в автозагрузку службу netbox-rq:
# systemctl enable --now netbox-rq.service
Для проверки работы приложения запустить сервер разработки:
# python3 manage.py runserver 0.0.0.0:8000 --insecure
Performing system checks...
System check identified no issues (0 silenced).
August 11, 2025 - 10:23:25
Django version 4.2.20, using settings 'netbox.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C
Проверить подключение в веб-браузере, используя имя или IP-адрес сервера из ALLOWED_HOSTS и порт 8000, например, http://netbox.test.alt:8000/ — должна открыться домашняя страница NetBox.
Установка веб-сервера
Nginx
Установить пакет netbox-nginx:
# apt-get install netbox-nginx
При установке будут созданы конфигурационный файл /etc/nginx/sites-available.d/netbox.conf и самоподписанный сертификат.
В параметре server_name файла /etc/nginx/sites-available.d/netbox.conf указать имя сервера:
server_name netbox.test.alt;
Включить виртуальный хост:
# ln -s /etc/nginx/sites-available.d/netbox.conf /etc/nginx/sites-enabled.d/netbox.conf
Запустить Nginx и добавить его в автозагрузку:
# systemctl enable --now nginx netbox
Apache2
Установить пакет netbox-apache2:
# apt-get install netbox-apache2
При установке будут созданы конфигурационные файлы /etc/httpd2/conf/sites-available/netbox.conf, /etc/httpd2/conf/sites-available/netbox-ssl.conf и самоподписанный сертификат.
Включить модули:
# for mod in ssl proxy proxy_http headers wsgi-py3 rewrite; do a2enmod $mod; done
Для доступа по HTTP:
- включить сайт:
# a2ensite netbox
Для доступа по HTTPS
- открыть порт 443 для доступа по HTTPS:
# a2enport https
- включить сайт:
# a2ensite netbox-ssl
Запустить веб-сервер Apache2 и добавить его в автозагрузку:
# systemctl enable --now httpd2
Обновление
После обновления пакета netbox необходимо выполнить скрипт обновления:
# upgrade_netbox
Он применяет миграции базы данных и обновляет статические файлы.
Затем перезапустить компоненты NetBox:
- если установлен веб-сервер Nginx:
# systemctl restart netbox netbox-rq
- если установлен веб-сервер Apache:
# systemctl restart httpd2 netbox-rq
Основные функции
ENABLE_LOCALIZATION = True
API
Токен — это уникальный идентификатор, сопоставленный с учетной записью пользователя NetBox. У каждого пользователя может быть один или несколько токенов, которые он может использовать для аутентификации при выполнении запросов к REST API.
Для создания токена необходимо:
- В меню пользователя выбрать пункт «Токены API»
- Нажать кнопку «Добавить токен».
- В открывшемся окне будет отображен автоматически сгенерированный токен. Его можно изменить. Кроме того, можно установить срок действия токена.
- Нажать кнопку «Создайте».