NetBox

Материал из ALT Linux Wiki
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

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 — список допустимых полных доменных имён (FQDN) и IP-адресов, по которым можно получить доступ к серверу. Необходимо указать хотя бы одно имя или IP-адрес. Можно использовать подстановочный знак (*), чтобы разрешить все значения хостов:
ALLOWED_HOSTS = ['*']


Завершить установку NetBox:

  1. Создать таблицы в базе данных:
    # cd /usr/share/netbox
    # python3 manage.py migrate
    
  2. Создать учётную запись администратора:
    #  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
Примечание: Apache с модулем wsgi-py3 встраивает NetBox прямо в свой процесс. WSGI-приложение NetBox исполняется внутри рабочих процессов Apache, поэтому отдельная служба netbox не нужна.


Обновление

После обновления пакета netbox необходимо выполнить скрипт обновления:

# upgrade_netbox

Он применяет миграции базы данных и обновляет статические файлы.

Затем перезапустить компоненты NetBox:

  • если установлен веб-сервер Nginx:
    # systemctl restart netbox netbox-rq
    
  • если установлен веб-сервер Apache:
    # systemctl restart httpd2 netbox-rq
    

Основные функции

Примечание: Для возможности выбора языка веб-интерфейса необходимо в файле /etc/netbox/configuration.py установить:
ENABLE_LOCALIZATION = True
И перезапустить веб-сервер.


API

Токен — это уникальный идентификатор, сопоставленный с учетной записью пользователя NetBox. У каждого пользователя может быть один или несколько токенов, которые он может использовать для аутентификации при выполнении запросов к REST API.

Для создания токена необходимо:

  1. В меню пользователя выбрать пункт «Токены API»
  2. Нажать кнопку «Добавить токен».
  3. В открывшемся окне будет отображен автоматически сгенерированный токен. Его можно изменить. Кроме того, можно установить срок действия токена.
    Netbox. Создание токена пользователя
  4. Нажать кнопку «Создайте».
Примечание: Обязательно сохраните токен, так как после отправки формы просмотреть его будет невозможно.