# **Netbox** Netbox представляет собой веб-интерфейс для хранения и поддержки информации о серверах, сетевых интерфейсах и других данных, которые используются при автоматизированной установке и настройке операционной системы для серверов. Netbox — компонент в составе инсталлятора, который используется для хранения и настройки серверов и их сетей для сервиса Baremetal. Данный сервис не является обязательным для использования, однако он включен в базовую последовательность установки продукта KeyStack. ## Интерфейс Netbox Пользовательский веб-интерфейс доступен по адресу [https://netbox.](https://netbox.). ![IMG0-interface](Media/image0.png) Навигация по основным разделам веб-интерфейса осуществляется с помощью меню слева. В этом меню доступны следующие разделы: - 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](Media/image1.png) **Массовое редактирование** Редактировать, переименовывать и удалять можно целую группу сущностей, а не каждую из них по отдельности. Для этого необходимо выделить выбранные сущности в соответствующей таблице и нажать кнопку **Edit Selected** рядом с ними. Другие кнопки — **Rename** и **Delete Selected** — позволяют, соответственно, переименовать и удалять выбранные элементы. ![IMG2-mass_edit](Media/image2.png) ## Базовая настройка Netbox Для базовой настройки сервиса следует заполнить параметры в разделах **Organization**, **Customization**, **IPAM**, **Provisioning** и **Devices**. ### Organization В первую очередь необходимо настроить параметры в разделах **Sites** и **Tenancy**. Последовательность создания сущностей для работы с Netbox такая: сайт-группа → регион → сайт. Если есть владелец ресурса или клиент, его следует указать в разделе **Tenancy**. В данном случае — `itkey`. Выполните следующие действия: 1. Откройте разделы в следующем порядке: Organization → Tenancy → Tenant. Добавьте тенанта. ![IMG3-tenant](Media/image3.png) 2. Перейдите в Organization → Sites → Site Groups и создайте новую сайт-группу. 3. Добавьте регион в Organization → Sites → Regions. 4. Создайте сайт в Organization → Sites → Sites. Сайты здесь — основная сущность. При создании сайта выберите, к какому региону он относится, в какой группе состоит и какому пользователю принадлежит. ![IMG4-site](Media/image4.png) 5. Данные в разделе **Contact Info** заполните по необходимости: это необязательная информация, которая никак не влияет на работу сервиса. Так вы добавите тенанта и сайт-группу по имени клиента. ### Customization В разделе **Customization** можно настраивать сущности, которые нужны для сервиса. Важнейший элемент в этом разделе — теги, поскольку сбор всей информации происходит по ним. По тегам ищутся сервера, которые нужно раздеплоить. По тегам можно также фильтровать разные сущности, например, девайсы. Теги можно создавать и редактировать в Customization → Customization → Tags. ![IMG5-tag](Media/image5.png) В разделе **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](Media/image6.png) ### Provisioning В разделе **Config Contexts** можно создавать специальный контекст (config context), который отвечает за дополнительные настройки сети. При создании такого контекста можно копировать информацию из другого контекста. Заполняются такие поля, как Regions, Sites, Tenants и Tags (последний является обязательным параметром). Этот раздел доступен по следующему адресу: Provisioning → Configurations → Config Contexts. ![IMG7-config_context](Media/image7.png) ### 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](Media/image8.png) Созданный сервер можно посмотреть в разделе **Devices**. Содержимое тегов отображается на вкладке **Config Context** в этом же разделе. На вкладке **Interfaces** можно добавить новый IP-адрес для сервера, нажав `+` в соответствующей строке в таблице. Однако такой IP-адрес не будет отображаться в разделе IPAM слева. ![IMG9-server](Media/image9.png) #### Создание интерфейса Новый интерфейс для сервера можно создать несколькими способами: - 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](Media/image10.png) ### Связанные пайплайны для 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](Media/image11.png)