Что за коробка такая — NetBox

bubnov
bubnov
Dec 4, 2019 · 4 min read

В мире сетевой (и не только) автоматизации нужно где-то хранить данные об устройствах: модель, количество интерфейсов, VLAN’ы, учетные данные (да, не все пользуются RADIUS’ом и ему подобными). Самый простой способ — Excel файлик: быстро, легко, удобно. Так же быстро, легко и удобно он превращается в неактуальную помойку. Ещё есть разные системы инвентаризации, GLPI например.

DigitalOcean подошел к этой задаче со своей стороны и подарил сообществу открытую модульную DCIM/IPAM систему NetBox.

DCIM — DataCenter Infrastructure Management — система, описывающая инфраструктуру: оборудование, виртуальные машины, параметры устройств

IPAM — IP Addresses Management — система управления IP адресами. Представляет удобный интерфейс для менеджмента IP: префиксы, подсети, VRF, свободные адреса

Описание стойки с оборудованием

Что же дают нам эти DCIM/IPAM? Кроме, собственно базы данных оборудования и адресов. У NetBox’a есть API, который позволяет интегрировать его с другими системами.

Система мониторинга опрашивает сетевые устройства по SNMP. Инженеры ставят новый коммутатор, записывают данные в Excel файлик. Служба мониторинга обрабатывает эксельку раз в день. Коммутатор начинает тупить через час после установки, на мониторинге это не отражается, клиенты недовольны. Знакомая ситуация?

Ещё пример:

Поставили железку. Инвентарник надо записать в бухгалтерскую систему, завести в мониторинг, отчитаться об адресе установки в какой-то системе отчетности, описать назначение портов в карте сети. А каждая система — это ручная работа и вероятность ошибки. А через неделю к железке подключают новое устройство и данные во всех системах нужно изменить. Руками.

Свободные адреса

Ну что, убедил?

Что же даёт нам NetBox? Это реляционная база данных, все элементы которой связаны друг с другом. К префиксам (подсетям) привязаны IP адреса, которые привязаны к конкретным интерфейсам/VLAN’ам оборудования, которое привязано к месту в стойке, которая привязана к географическому адресу филиала. В системе также есть сущность “кабель”, которая соединяет между собой девайсы. Ещё есть:

  • описание провайдеров
  • автономных систем
  • VRF
  • секреты (пароли/токены и т.д., хранящиесе в шифрованном виде)
  • PDU (Power Distribution Unit) и силовые кабели
  • виртуальные машины
  • ноды
  • кластеры
  • сервисы и их типы
  • всё, что вам может пригодиться. Сомневаюсь, что ваши требования масштабнее требований разработчика — DigitalOcean
Список устройств

И самая мяготка — REST API и библиотека для Python pynetbox и серия статей по её использованию. API позволяет интегрировать NetBox с любой системой: мониторинг, Configuration Management, логи, бэкапы, один-простигосподи-эс, всё, что придет в голову. Есть сторонние модули, которые могут нарисовать карту сети исходя из данных NetBox’a, никто не запрещает написать свой модуль.

Интегрируем с Proxmox, создаем в системе вирутуальную машину с нужными характерстиками и — вжух! — виртуалка с нужными параметрами создана. Без необходимости давать доступ к гипервизору юзерам.

Есть уже готовые проекты для интеграции с Ansible, Prometheus, NAPALM, Proxmox, ещё Ansible. Антон Карнелюк написал целую серию постов об автоматизации сети с помощью NetBox.

Интерфейсы коммутатора

Шаблоны

На основании данных из системы можем создавать различные шаблоны. Например, для генерации конфигов сетевого оборудования. Шаблоны очень похожи на Jinja2

Отчеты

Удобочитаемые отчеты о состоянии инфраструктуры. Например:

  • Все ToR свитчи имеют консольное подключение
  • На всех роутерах есть лупбэк с IP адресом
  • Есть валидный комментарий на всех интерфейсах
  • Каждый филиал обладает нужным количеством VLAN’ов

Webhooks

Можно дергать запросы к другим системам при изменениях в NetBox’е. Создал новый объект — получи уведомление с его параметрами на почту и в Telegram. Изменил VRF на устройстве —примени его с помощью Ansible или NAPALM и увидь изменения в реальном времени.

Point of Truth

И, пожалуй, самое важное. Работа с NetBox должна идти по философии Network Point of Truth. То есть NetBox является единственной точкой доверия в сети. Всё, что происходит в сети должно быть немедленно зафиксировано в нетбоксе. Всё, что изменилось в нетбоксе должно немедленно примениться в инфраструктуре.

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


Это мой первый пост на Medium

У меня есть блог на blogger, куда я перестал писать из-за неудобства этой платформы. Blogger безнадежно устарел: нет подсветки кода, удобного форматирования. Так что я тестирую разные варианты. Но на старом движке у меня остались интересные посты, например:

Есть ещё пара постов в Telegraph:

Возможно, я останусь на медиуме. Но самая свежая информация появляется в моем Telegram канале Mikrotik Ninja. Канал начинался в качестве распространения инфы о Mikrotik и том, что мне интересно. Постепенно я ухожу в автоматизацию, но название канала менять не буду, ведь с Mikrotik я в очень близких отношениях.

Присоединяйтесь, чтобы не пропустить новую информацию. Да пребудет с вами АДСМ

    bubnov

    Written by

    bubnov

    Network Automation Engineer. MikroTik expert. Hiking guy

    Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
    Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
    Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade