NetBox

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

NetBox — компонент в составе инсталлятора, который используется для хранения и настройки серверов и их сетей для сервиса Baremetal. Данный сервис не является обязательным для использования, однако он включен в базовую последовательность установки продукта KeyStack.

Интерфейс NetBox

Пользовательский веб-интерфейс доступен по адресу https://netbox.<domain_name>.

IMG0-interface
Навигация по основным разделам веб-интерфейса осуществляется с помощью меню слева.
В этом меню доступны следующие разделы:
  • 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

Логирование

В NetBox можно отслеживать внесенные изменения — например, дату, время и автора изменений. Для этого необходимо перейти в раздел Change Log по следующему пути: Operations → Logging → Change Log.
Для удобства можно дополнительно настроить интерфейс, чтобы данный раздел сразу отображается на основном экране.
IMG1-changelog

Массовое редактирование

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

IMG2-mass_edit

Базовая настройка NetBox

Для базовой настройки сервиса следует заполнить параметры в разделах Organization, Customization, IPAM, Provisioning и Devices.

Organization

В первую очередь необходимо настроить параметры в разделах Sites и Tenancy.
Последовательность создания сущностей для работы с NetBox такая: сайт-группа → регион → сайт.
Если есть владелец ресурса или клиент, его следует указать в разделе Tenancy. В данном случае — itkey.

Выполните следующие действия:

  1. Откройте разделы в следующем порядке: Organization → Tenancy → Tenant. Добавьте тенанта.

IMG3-tenant

  1. Перейдите в Organization → Sites → Site Groups и создайте новую сайт-группу.

  2. Добавьте регион в Organization → Sites → Regions.

  3. Создайте сайт в Organization → Sites → Sites. Сайты здесь — основная сущность. При создании сайта выберите, к какому региону он относится, в какой группе состоит и какому пользователю принадлежит.

IMG4-site

  1. Данные в разделе Contact Info заполните по необходимости: это необязательная информация, которая никак не влияет на работу сервиса.

Так вы добавите тенанта и сайт-группу по имени клиента.

Customization

В разделе Customization можно настраивать сущности, которые нужны для сервиса. Важнейший элемент в этом разделе — теги, поскольку сбор всей информации происходит по ним. По тегам ищутся сервера, которые нужно раздеплоить.
По тегам можно также фильтровать разные сущности, например, девайсы.

Теги можно создавать и редактировать в Customization → Customization → Tags.

IMG5-tag

В разделе Custom Fields можно создавать дополнительные поля и задавать набор предопределенных параметров для каждого из них. Пример таких добавочных полей — два поля: role и state.

Дополнительные поля создаются и конфигурируются в Customization → Customization → Custom Fields.

IPAM

Раздел IPAM включает настройки для модулей IPAM и содержит все, что относится к сетям. В нашем случае используются сети VLAN, поэтому VLANs — самые главные сущности в разделе по сетям.
На основе данных, заполненных для VLAN, префиксы и IP-адресы заполняются автоматически. Эти параметры необходимы главным образом при планировании.

В работе с NetBox желательно наличие как минимум трех VLANs (для сайта и тенанта). В нашем случае это pxe, mgmt и external.

Чтобы добавить сеть, выполните следующие действия:

  1. Создайте префикс для сети в разделе IPAM → Prefixes → Prefixes. Такой префикс используется для PCI-сети, которая необходима для установки Baremetal-серверов.

  2. Выберите сайт и VLAN для префикса.

Созданный префикс появится в параметрах VLAN и IP-адреса.

IMG6-vlan

Provisioning

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

Этот раздел доступен по следующему адресу: Provisioning → Configurations → Config Contexts.

IMG7-config_context

Devices

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

Создание сервера

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

  1. Перейдите в Devices → Device Types → Manufacturers и заполните там данные, т.е. марку сервера. Если марка отсутствует, ее необходимо добавить.

  2. В Device Types → Device Roles выберите, что именно нужно установить. Обычно это Server.

  3. Можно добавить новый device type в соответствующем разделе. Это шаблон, с которого создается новый сервер.

  4. Создайте новый сервер в разделе Devices. Заполните следующие параметры:

  1. В Device — Name, Device role (Server) и Tags;

  2. В Hardware — Device type;

  3. В Location — Site;

  4. В Custom Fields — role и state.

Дополнительно можно заполнить следующее:

  • Tenancy — Tenant;

  • Local Context Config Data.

IMG8-device
Созданный сервер можно посмотреть в разделе Devices.
Содержимое тегов отображается на вкладке Config Context в этом же разделе.
На вкладке Interfaces можно добавить новый IP-адрес для сервера, нажав + в соответствующей строке в таблице. Однако такой IP-адрес не будет отображаться в разделе IPAM слева.
IMG9-server

Создание интерфейса

Новый интерфейс для сервера можно создать несколькими способами:

  • Devices → Devices → Interfaces → Add Interface;

  • Devices → Devices → Add Components → Interfaces.

Для интерфейса нужно указать следующие данные:

  1. В Interface — Device, Name, Type;

  2. В Operation — MTU;

  3. В Related Interfaces — Parent interface;

  4. В 802.1Q Switching — 802.1Q Mode и Untagged VLAN.

IMG10-interface

Связанные пайплайны для Baremetal

Когда в GitLab настраивается пайплайн, эти параметры соответствуют следующим данным из NetBox:

  1. TARGET_ROLE = role (compute);

  2. TARGET_CLOUD = tag (itkey);

  3. TARGET_NODE = node (name);

  4. IRONIC_SSH_KEY = SSH-key;

  5. IRONIC_IMAGE_URL = Image (адрес образа).

После этого нужно запустить пайплайн, нажав “Run pipeline”. Статус Passed пайплайна означает, что сервер успешно поднялся.

IMG11-pipeline

Настройки безопасности

Аутентификация и авторизация

  1. NetBox поддерживает аутентификацию через LDAP, что позволяет интегрировать его с существующей системой управления доступом, например, Active Directory.

  2. Поддержка SAML (Security Assertion Markup Language) для единого входа (Single Sign-On, SSO), что облегчает управление учетными записями пользователей.

  3. Для работы с API можно использовать токены с разным уровнем доступа. Это позволяет контролировать, какие действия может выполнять пользователь или приложение через API.

  4. NetBox поддерживает аутентификацию через OAuth2 для более гибкого управления доступом.

Права доступа и группы

  1. В NetBox можно настроить группы пользователей с различными правами доступа, что позволяет разделять доступ к разным разделам или функциям системы.

  2. Права доступа можно настраивать на основе ролей (RBAC), что позволяет ограничивать доступ к функциям и объектам на основе должностных обязанностей или ролей в организации.

Шифрование

  1. NetBox поддерживает шифрование данных через SSL/TLS при настройке с использованием веб-сервера. Это защищает данные при передаче между клиентом и сервером.

Для веб-интерфейса NetBox можно настроить интервал простоя, что позволяет принудительно завершать сеанс доступа при отсутствии активности со стороны пользователя. Чтобы установить желаемое значение, перед деплоем необходимо изменить значение для параметра LOGIN_TIMEOUT в файле по пути installer/netbox-docker/configuration/configuration.py. Интервал выставляется в секундах.

Данный раздел в дальнейшем будет дополняться.