NetBox
NetBox представляет собой веб-интерфейс для хранения и поддержки информации о серверах, сетевых интерфейсах и других данных, которые используются при автоматизированной установке и настройке операционной системы для серверов.
NetBox — компонент в составе инсталлятора, который используется для хранения и настройки серверов и их сетей для сервиса Baremetal. Данный сервис не является обязательным для использования, однако он включен в базовую последовательность установки продукта KeyStack.
Интерфейс NetBox
Пользовательский веб-интерфейс доступен по адресу https://netbox.<domain_name>.

Organization
Devices
Connections
Wireless
IPAM
VPN
Virtualization
Circuits
Power
Provisioning
Customization
Operations
Admin
Organization
Circuits
Virtualization
IPAM
DCIM
Welcome (приветственный раздел)
NetBox News (новости NetBox)
Change Log (логи)
Преимущества NetBox
Логирование

Массовое редактирование
Редактировать, переименовывать и удалять можно целую группу сущностей, а не каждую из них по отдельности. Для этого необходимо выделить выбранные сущности в соответствующей таблице и нажать кнопку Edit Selected рядом с ними. Другие кнопки — Rename и Delete Selected — позволяют, соответственно, переименовать и удалять выбранные элементы.

Базовая настройка NetBox
Для базовой настройки сервиса следует заполнить параметры в разделах Organization, Customization, IPAM, Provisioning и Devices.
Organization
itkey
.Выполните следующие действия:
Откройте разделы в следующем порядке: Organization → Tenancy → Tenant. Добавьте тенанта.
Перейдите в Organization → Sites → Site Groups и создайте новую сайт-группу.
Добавьте регион в Organization → Sites → Regions.
Создайте сайт в Organization → Sites → Sites. Сайты здесь — основная сущность. При создании сайта выберите, к какому региону он относится, в какой группе состоит и какому пользователю принадлежит.
Данные в разделе Contact Info заполните по необходимости: это необязательная информация, которая никак не влияет на работу сервиса.
Так вы добавите тенанта и сайт-группу по имени клиента.
Customization
Теги можно создавать и редактировать в Customization → Customization → Tags.

В разделе Custom Fields можно создавать дополнительные поля и задавать набор предопределенных параметров для каждого из них. Пример таких добавочных полей — два поля: role и state.
Дополнительные поля создаются и конфигурируются в Customization → Customization → Custom Fields.
IPAM
В работе с NetBox желательно наличие как минимум трех VLANs (для сайта и тенанта). В нашем случае это pxe
, mgmt
и external
.
Чтобы добавить сеть, выполните следующие действия:
Создайте префикс для сети в разделе IPAM → Prefixes → Prefixes. Такой префикс используется для PCI-сети, которая необходима для установки Baremetal-серверов.
Выберите сайт и VLAN для префикса.
Созданный префикс появится в параметрах VLAN и IP-адреса.

Provisioning
В разделе Config Contexts можно создавать специальный контекст (config context), который отвечает за дополнительные настройки сети. При создании такого контекста можно копировать информацию из другого контекста. Заполняются такие поля, как Regions, Sites, Tenants и Tags (последний является обязательным параметром).
Этот раздел доступен по следующему адресу: Provisioning → Configurations → Config Contexts.

Devices
Devices является важным разделом в работе с NetBox, поскольку здесь настраиваются параметры серверов.
Создание сервера
Если в NetBox еще не заполнены данные по серверу, нужно выполнить следующие действия:
Перейдите в Devices → Device Types → Manufacturers и заполните там данные, т.е. марку сервера. Если марка отсутствует, ее необходимо добавить.
В Device Types → Device Roles выберите, что именно нужно установить. Обычно это Server.
Можно добавить новый device type в соответствующем разделе. Это шаблон, с которого создается новый сервер.
Создайте новый сервер в разделе Devices. Заполните следующие параметры:
В Device — Name, Device role (Server) и Tags;
В Hardware — Device type;
В Location — Site;
В Custom Fields — role и state.
Дополнительно можно заполнить следующее:
Tenancy — Tenant;
Local Context Config Data.

+
в соответствующей строке в таблице. Однако такой IP-адрес не будет отображаться в разделе IPAM слева.
Создание интерфейса
Новый интерфейс для сервера можно создать несколькими способами:
Devices → Devices → Interfaces → Add Interface;
Devices → Devices → Add Components → Interfaces.
Для интерфейса нужно указать следующие данные:
В Interface — Device, Name, Type;
В Operation — MTU;
В Related Interfaces — Parent interface;
В 802.1Q Switching — 802.1Q Mode и Untagged VLAN.

Связанные пайплайны для Baremetal
Когда в GitLab настраивается пайплайн, эти параметры соответствуют следующим данным из NetBox:
TARGET_ROLE = role (
compute
);TARGET_CLOUD = tag (
itkey
);TARGET_NODE = node (
name
);IRONIC_SSH_KEY = SSH-key;
IRONIC_IMAGE_URL = Image (адрес образа).
После этого нужно запустить пайплайн, нажав “Run pipeline”. Статус Passed пайплайна означает, что сервер успешно поднялся.

Настройки безопасности
Аутентификация и авторизация
NetBox поддерживает аутентификацию через LDAP, что позволяет интегрировать его с существующей системой управления доступом, например, Active Directory.
Поддержка SAML (Security Assertion Markup Language) для единого входа (Single Sign-On, SSO), что облегчает управление учетными записями пользователей.
Для работы с API можно использовать токены с разным уровнем доступа. Это позволяет контролировать, какие действия может выполнять пользователь или приложение через API.
NetBox поддерживает аутентификацию через OAuth2 для более гибкого управления доступом.
Права доступа и группы
В NetBox можно настроить группы пользователей с различными правами доступа, что позволяет разделять доступ к разным разделам или функциям системы.
Права доступа можно настраивать на основе ролей (RBAC), что позволяет ограничивать доступ к функциям и объектам на основе должностных обязанностей или ролей в организации.
Шифрование
NetBox поддерживает шифрование данных через SSL/TLS при настройке с использованием веб-сервера. Это защищает данные при передаче между клиентом и сервером.
Для веб-интерфейса NetBox можно настроить интервал простоя, что позволяет принудительно завершать сеанс доступа при отсутствии активности со стороны пользователя.
Чтобы установить желаемое значение, перед деплоем необходимо изменить значение для параметра LOGIN_TIMEOUT
в файле по пути installer/netbox-docker/configuration/configuration.py
. Интервал выставляется в секундах.
Данный раздел в дальнейшем будет дополняться.