NetBox — Управление физической инфраструктурой¶
NetBox — компонент в составе инсталлятора, размещённый на LCM-узле. Данный сервис включен в базовую последовательность установки продукта. NetBox предоставляет веб-интерфейс для внесения и хранения информации о серверах, сетевых интерфейсах и других данных, которые используются при автоматизированной установке и настройке операционных систем серверов.
Пользовательский веб-интерфейс доступен по адресу https://netbox.<имя домена>.
При включенной ролевой модели доступ к NetBox получают пользователи с ролями admin, security_auditor и reader. Пользователь с ролью admin может создавать, изменять и удалять объекты NetBox. Пользователи с ролями security_auditor и reader получают доступ только на чтение. Пользователи с ролями member, operator_vm, app_operator и os_operator не получают доступ к NetBox.
Подробное поведение ролей в NetBox описано в разделе Ролевая модель в NetBox.
Интерфейс NetBox¶
Навигация по основным разделам веб-интерфейса осуществляется с помощью меню слева.
Кроме того, можно осуществлять операции с целой группой сущностей, а не с каждой по отдельности. Для этого выделите выбранные объекты в соответствующей таблице. Под таблицей доступны действия Изменить выбранное, Переименовать выбранное и Удалить выбранное.
Массовое редактирование в NetBox¶
Добавление новых вычислительных узлов¶
Подготовьте описание серверов для NetBox.
Для этого добавьте новое устройство в NetBox. При включенной ролевой модели используйте учетную запись пользователя с ролью
admin. Если ролевая модель выключена, пароль администратора NetBox находится в Vault по пути secret_v2 / deployments / <LCM FQDN> / secrets / accounts. Веб-интерфейс NetBox доступен по адресуhttps://netbox.<имя домена>/dcim/devices/.
Добавление нового устройства в NetBox¶
Затем заполните параметры устройства:
Имя — имя сервера;
Роль устройства —
Server;Тип устройства — выберите соответствующий тип;
Площадка — выберите соответствующую площадку, например,
ks-region1;Арендатор — выберите тенант;
role — выберите роль в выпадающем списке:
controller,computeилиnetwork;state — выберите
Ready.
После того как устройство будет добавлено, откройте его карточку и добавьте сетевые интерфейсы.
Для этого перейдите на вкладку Интерфейсы, нажмите Добавить компоненты и выберите пункт Интерфейсы.
Также интерфейсы можно добавить из списка устройств: выберите устройство, нажмите Добавить компоненты и выберите пункт Интерфейсы.
Добавление сетевых интерфейсов¶
Установите операционную систему:
Откройте веб-интерфейс развернутого GitLab.
Откройте проект project_k / deployments / <имя региона>.
Создайте новый пайплайн: .
Выберите ветку вашего релиза в выпадающем списке Run for branch name or tag
master-<имя релиза keystack>.В открывшемся окне измените значения для следующих переменных:
TARGET_ROLE —
compute,controllerилиnetwork;TARGET_CLOUD —
ks-region1;IRONIC_IMAGE_URL — при указанном
TARGET_ROLE=network, укажитеhttp://LCM_IP:8080/ubuntu-20.04-mellanox-keystack.qcow2; в остальных случаях оставьте значение по умолчанию.
Запустите пайплайн: New pipeline.
Дождитесь завершения выполнения операции.
Добавьте новый сервер в группу
[compute]в файлеinventory/inventory-ciв репозитории региона в GitLab.Выполните развёртывание нового гипервизора:
Создайте новый пайплайн: .
Выберите ветку вашего релиза в выпадающем списке Run for branch name or tag
master-<имя релиза keystack>.В открывшемся окне измените значения для следующих переменных:
KOLLA_ARGS —
--limit <имя нового гипервизора>.
Запустите пайплайн: New pipeline.
Дождитесь завершения выполнения операции
bootstrap-servers.Запустите операцию
deployи дождитесь её завершения.
Проверьте, что гипервизор функционирует, как ожидается: создаются виртуальные машины, работает миграция, имеется сетевая связность, имеется доступ по SSH до тестовых виртуальных машин:
Создайте виртуальную машину на требуемом гипервизоре через OpenStack CLI:
$ openstack server create --image <image-id> --flavor <flavor-id> --availability-zone nova:<hypervisor-host-name> --nic net-id=<network-id> Test-VM
Проверьте, что она создалась и перешла в статус ACTIVE:
$ openstack server show <server-id>
Добавьте к ней FIP (Floating IP address) и проверьте SSH-доступ (должно быть соответствующее разрешающее правило).
Убедитесь, что виртуальную машину можно мигрировать. Сделать это можно c помощью OpenStack CLI:
$ openstack server migrate --os-compute-api-version 2.87 --live-migration <instance-id> --host <new-host-name>
Удаление вычислительного узла из кластера¶
Удалите описание сервера из NetBox:
https://netbox.<имя домена>/dcim/devices/Удалите сервер из файла inventory из группы [compute] в GitLab:
https://<домен GitLab>/project_k/deployments/stage1/-/blob/dev-stage1/inventory(пример дляstage1).Далее удалите связанные сущности в OpenStack (предполагается, что виртуальных машин на сервере нет):
$ HOST_FOR_REMOVAL=<computeN> $ openstack --os-compute-api-version 2.87 compute service list --host $HOST_FOR_REMOVAL --service nova-compute -f value -c ID | xargs openstack --os-compute-api-version 2.87 compute service delete $ openstack network agent list --host $HOST_FOR_REMOVAL -f value -c ID | while read agent_id; do openstack network agent delete $agent_id; done $ openstack resource provider list --name $HOST_FOR_REMOVAL -f value -c uuid | xargs openstack resource provider show --allocations -f json |jq .allocations | jq 'keys[]' | xargs -n1 openstack resource provider allocation delete $ openstack resource provider list --name $HOST_FOR_REMOVAL -f value -c uuid | xargs openstack resource provider delete
Базовая настройка сервиса¶
Для базовой настройки сервиса достаточно заполнить следующие разделы: Организация, Настройка, IPAM, Выделение ресурсов и Устройства.
В первую очередь настройте параметры в разделах Площадки и Аренда. Последовательность создания сущностей для работы с NetBox: группа площадок > регион > площадка.
Арендаторы¶
Для того чтобы добавить арендатора, перейдите в раздел и нажмите +.
Пример заполнения данных:
Name |
Group |
Description |
|---|---|---|
itkey |
Добавление нового арендатора в NetBox¶
Группы площадок¶
Для того чтобы создать группу площадок в NetBox, перейдите в раздел и нажмите + Добавить.
Пример заполнения данных:
Имя |
Подстрока |
Описание |
|---|---|---|
ItKey Group |
itkey-group |
Добавление новой группы площадок в NetBox¶
Регионы¶
Для того чтобы добавить регион в NetBox, перейдите в раздел и нажмите + Добавить.
Пример заполнения данных:
Имя |
Подстрока |
Описание |
|---|---|---|
Russia |
russia |
Добавление нового региона в NetBox¶
Площадки¶
Площадки — основная сущность в NetBox. Для того чтобы добавить площадку, перейдите в раздел и нажмите + Добавить.
Пример заполнения данных:
Имя |
Подстрока |
Статус |
Регион |
Группа |
Объект |
Арендатор |
Описание |
|---|---|---|---|---|---|---|---|
Region1 |
region1 |
Активный |
Russia |
ItKey Group |
itkey |
Добавление новой площадки в NetBox¶
Настраиваемые поля¶
В разделе можно создавать дополнительные поля и задавать набор предопределенных параметров для каждого из них. Например, добавочные поля role и state.
Настраиваемые поля, необходимые для работы с пайплайнами GitLab:
Типы объектов |
Имя |
лейбл |
Имя группы |
Описание |
Тип |
Требуется |
Значение по умолчанию |
|---|---|---|---|---|---|---|---|
DCIM > Device |
role |
role |
Multiple selection |
False |
|||
DCIM > Device |
state |
state |
Selection |
False |
Добавление нового настраиваемого поля в NetBox¶
IPAM¶
Раздел включает настройки для модулей IPAM и содержит всё, что относится к сетям.
В работе с NetBox желательно наличие как минимум трех сетей VLAN (для сайта и тенанта). В нашем случае это pxe, mgmt и external.
Для создания префикса для сети перейдите в раздел и нажмите + Добавить. Затем укажите префикс, статус, область применения и, если требуется, VLAN. Созданный префикс появится в параметрах VLAN и IP-адреса.
Заполните этот раздел согласно данным заказчика:
VLAN
Prefix
Добавление нового префикса в NetBox¶
Производители¶
Для того чтобы определить производителей, перейдите в раздел и заполните данные, т.е. марку сервера. Если марка отсутствует, добавьте её, нажав + Добавить.
Пример заполнения данных:
Name |
Device Types |
Inventory Items |
Platforms |
Description |
Slug |
|---|---|---|---|---|---|
Accedian |
1 |
0 |
0 |
accedian |
|
Adam Hall |
1 |
0 |
0 |
adam-hall |
|
APC |
19 |
0 |
0 |
apc |
|
Arista |
40 |
0 |
0 |
arista |
|
Asrock |
2 |
0 |
0 |
asrock |
|
ATEN |
2 |
0 |
0 |
aten |
|
Avocent |
8 |
0 |
0 |
avocent |
|
Backblaze |
1 |
0 |
0 |
backblaze |
|
Brocade |
2 |
0 |
0 |
brocade |
|
Cabeus |
2 |
0 |
0 |
cabeus |
|
Chenbro |
1 |
0 |
0 |
chenbro |
|
Cisco |
64 |
44 |
0 |
cisco |
|
Dell |
37 |
0 |
0 |
dell |
|
Delta |
4 |
0 |
0 |
delta |
|
Dlink |
2 |
0 |
0 |
dlink |
|
EMC |
7 |
0 |
0 |
emc |
|
Extreme |
1 |
0 |
0 |
extreme |
|
Fiberstore |
6 |
0 |
0 |
fiberstore |
|
FlyghtPro |
0 |
0 |
0 |
flyghtpro |
|
Flyht Pro |
1 |
0 |
0 |
flyht-pro |
|
Furukawa |
1 |
0 |
0 |
furukawa |
|
Geist |
2 |
0 |
0 |
geist |
|
Gigabyte |
7 |
0 |
0 |
gigabyte |
|
Graphcore |
1 |
0 |
0 |
graphcore |
|
HGST |
4 |
0 |
0 |
hgst |
|
HP |
46 |
0 |
0 |
hp |
|
Huawei |
2 |
0 |
0 |
huawei |
|
Intel |
4 |
0 |
0 |
intel |
|
Juniper |
11 |
0 |
0 |
juniper |
|
KEMP |
1 |
0 |
0 |
kemp |
|
KINX |
1 |
0 |
0 |
kinx |
|
Lenovo |
1 |
0 |
0 |
lenovo |
|
Lextron |
1 |
0 |
0 |
lextron |
|
Mellanox |
1 |
0 |
0 |
MELLANOX |
|
MikroTik |
1 |
0 |
0 |
mikrotik |
|
NetApp |
2 |
0 |
0 |
netapp |
|
Nokia |
1 |
0 |
0 |
nokia |
|
Noname |
27 |
0 |
0 |
noname |
|
NSFOCUS |
1 |
0 |
0 |
nsfocus |
|
Opengear |
2 |
0 |
0 |
opengear |
|
Oracle |
7 |
0 |
0 |
oracle |
|
Organiser |
2 |
0 |
0 |
organiser |
|
Panduit |
2 |
0 |
0 |
panduit |
|
Patchpanel |
1 |
0 |
0 |
patchpanel |
|
Pure Storage |
1 |
0 |
0 |
pure-storage |
|
QNAP |
1 |
0 |
0 |
qnap |
|
Quicknet |
2 |
0 |
0 |
quicknet |
|
Raritan |
5 |
0 |
0 |
raritan |
|
Rittal |
4 |
0 |
0 |
rittal |
|
Riverbed |
2 |
0 |
0 |
riverbed |
|
SNR |
1 |
0 |
0 |
snr |
|
std_config |
0 |
0 |
0 |
std_config |
|
STS |
0 |
0 |
0 |
sts |
|
Sun |
2 |
0 |
0 |
sun |
|
Supermicro |
73 |
0 |
0 |
supermicro |
|
Synology |
1 |
0 |
0 |
synology |
|
TP-LINK |
1 |
0 |
0 |
tp-link |
|
Tyan |
1 |
0 |
0 |
tyan |
|
Unknown |
1 |
0 |
0 |
unknown |
|
Vertiv |
2 |
0 |
0 |
vetiv |
Добавление нового производителя в NetBox¶
Роли устройств¶
Для того чтобы определить роли устройств, откройте раздел и выберите, что нужно установить. Обычно это Server.
Пример заполнения данных:
Name |
Devices |
VMs |
Color |
VM Role |
Description |
|---|---|---|---|---|---|
Access Switch |
0 |
0 |
#2196f3 |
False |
|
Cable management |
0 |
0 |
#111111 |
False |
|
Console Server |
0 |
0 |
#009688 |
False |
|
Core Switch |
0 |
0 |
#2196f3 |
False |
|
Customer equipment |
0 |
0 |
#e91e63 |
False |
|
DCcore |
0 |
0 |
#4caf50 |
False |
|
Disk enclosure |
0 |
0 |
#3f51b5 |
False |
|
Network HW |
0 |
0 |
#4caf50 |
False |
|
PDU |
0 |
0 |
#607d8b |
False |
|
Patch Panel |
0 |
0 |
#03a9f4 |
False |
|
Planned |
0 |
0 |
#f44336 |
False |
|
Power |
0 |
0 |
#ff9800 |
False |
|
Rack mount boxes |
0 |
0 |
#795548 |
False |
|
Rack mounting kit |
0 |
0 |
#111111 |
False |
|
Router |
0 |
0 |
#9c27b0 |
False |
|
SAN |
0 |
0 |
#ff9800 |
False |
|
Server |
5 |
0 |
#673ab7 |
False |
|
Server enclosure |
1 |
0 |
#2196f3 |
False |
Добавление новой роли устройства в NetBox¶
Типы устройств¶
Определите тип устройств в соответствующем разделе. Это шаблон, с которого создаётся новый сервер.
Для того чтобы добавить новый тип устройства, откройте раздел и нажмите + Добавить.
Пример для блейд-корзины DELL M1000e:
Device Type |
Manufacturer |
Part number |
Height (U) |
Full Depth |
Instances |
|---|---|---|---|---|---|
Dell M1000e |
Dell |
10 |
True |
1 |
|
M620 |
Dell |
0 |
True |
4 |
|
M830 |
Dell |
0 |
True |
1 |
Добавление нового типа устройств в NetBox¶
Контексты конфигурации¶
Для того чтобы создать контекст конфигурации, перейдите в раздел и нажмите +.
Пример заполнения данных:
Имя |
Вес |
Описание |
|---|---|---|
itkey |
1000 |
Добавление нового контекста конфигурации в NetBox¶
Devices¶
В данном разделе все параметры заполняются по данным заказчика:
Device;
Порты;
Бонды;
IP Address (
rmi);IP Address (
mgmt);IP Address (
vxlan);IP Address (
strg), если требуется.
Связанные пайплайны для Baremetal¶
Когда в GitLab настраивается пайплайн, эти параметры соответствуют следующим данным из NetBox:
TARGET_ROLE = role (
compute);TARGET_CLOUD = tag (
itkey);TARGET_NODE = node (
name);IRONIC_SSH_KEY = SSH-key;
IRONIC_IMAGE_URL = Image (адрес образа).
После настройки запустите пайплайн, нажав New pipeline. Статус Passed пайплайна означает, что сервер успешно поднялся.
Настройки безопасности¶
Аутентификация и авторизация¶
NetBox поддерживает аутентификацию через LDAP, что позволяет интегрировать его с существующей системой управления доступом, например, Active Directory. Подробнее см. Интеграция с LDAP.
При включенной ролевой модели права доступа пользователей определяются ролями KeyStack. Подробнее см. Ролевая модель в NetBox.
Для работы с API можно использовать токены с разным уровнем доступа. Это позволяет контролировать, какие действия пользователь или приложение может выполнять через API.
NetBox поддерживает аутентификацию через OAuth2 для более гибкого управления доступом.
Права доступа и группы¶
При включенной ролевой модели пользователь с ролью
adminможет просматривать, создавать, изменять и удалять объекты NetBox.Пользователи с ролями
security_auditorиreaderполучают доступ к NetBox только на чтение.Пользователи с ролями
member,operator_vm,app_operatorиos_operatorне получают доступ к NetBox.
Шифрование¶
NetBox поддерживает шифрование данных через SSL/TLS при настройке с использованием веб-сервера. Это защищает данные при передаче между клиентом и сервером.
Таймаут веб-интерфейса¶
Для веб-интерфейса NetBox можно настроить интервал простоя, что позволяет принудительно завершать сеанс доступа при отсутствии активности со стороны пользователя.
Чтобы установить желаемое значение, перед развёртыванием необходимо изменить значение для параметра LOGIN_TIMEOUT в файле по пути installer/netbox-docker/configuration/configuration.py. Интервал выставляется в секундах.