Администрирование NetBox¶
В NetBox хранятся сведения о физической инфраструктуре: серверах, их сетевых интерфейсах и адресах. Эти данные используются при автоматизированной установке и настройке серверов, поэтому при изменении состава узлов необходимо обновлять сведения о них в NetBox.
Для подключения к NetBox используйте интерфейс управления NetBox.
Интерфейс NetBox¶
Настройки безопасности¶
Аутентификация и авторизация¶
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. Интервал выставляется в секундах.
Базовая настройка сервиса¶
Для базовой настройки сервиса достаточно заполнить следующие разделы: Организация, Настройка, 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.
Для этого добавьте новое устройство в 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 / <имя региона>.
Создайте новый пайплайн: .
Оставьте ветку по умолчанию, соответствующую установленному релизу.
В открывшемся окне измените значения для следующих переменных:
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.Выполните развёртывание нового гипервизора:
Создайте новый пайплайн: .
Оставьте ветку по умолчанию, соответствующую установленному релизу.
В открывшемся окне измените значения для следующих переменных:
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
Подключитесь к KOC (см. Настройка и использование KOC CLI) и проверьте, что виртуальная машина создалась и перешла в статус ACTIVE:
# koc server show <server-id>
Добавьте к ней FIP (Floating IP address) и проверьте SSH-доступ (должно быть соответствующее разрешающее правило).
Убедитесь, что виртуальную машину можно мигрировать:
# 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).Подключитесь к KOC (см. Настройка и использование KOC CLI) и удалите связанные сущности в OpenStack (предполагается, что виртуальных машин на сервере нет):
# HOST_FOR_REMOVAL=<computeN> # koc --os-compute-api-version 2.87 compute service delete $HOST_FOR_REMOVAL nova-compute # koc network agent list --host $HOST_FOR_REMOVAL -f value -c ID | while read agent_id; do koc network agent delete $agent_id; done # koc resource provider list --name $HOST_FOR_REMOVAL -f value -c uuid | xargs -r koc resource provider show --allocations -f json | jq .allocations | jq 'keys[]' | xargs -r -n1 koc resource provider allocation delete # koc resource provider list --name $HOST_FOR_REMOVAL -f value -c uuid | xargs koc resource provider delete
Групповое редактирование объектов¶
Для работы с группой объектов выделите их в соответствующей таблице. Под таблицей доступны действия Изменить выбранное, Переименовать выбранное и Удалить выбранное.
Массовое редактирование в NetBox¶