Часть 3. IPAM/DCIM-системы

В предыдущих сериях АДСМ мы выработали фреймворк автоматизации, разобрались с тем, зачем появилась виртуализация и как она работает. В последней части мы выбрали и обосновали дизайн сети, роли устройств, производителей, определились с LLD (адресацией, маршрутизацией, номерами Автономных Систем).
Теперь мы готовы подумать о том, как всю эту гору информации хранить и в дальнейшем удобно извлекать.
Нет, есть, конечно, и сегодня компании, которые ведут учёт выделенных IP-адресов в таблице Excel. Но это не наш путь.
Даже для самой маленькой конторки размеров в пару филиалов наличие централизованной системы управления IP-пространством не повредит.
Необходимость системы инвентаризации очевидна без лишних слов.
https://fs.linkmeup.ru/images/adsm/3/kdpv_adsm3.png
Этот выпуск я посвящу неотъемлемым системам в сетевой автоматизации - системе управления адресным пространством и инвентарной системе.
Мы выберем и установим её, разберёмся с архитектурой, схемой БД, интерфейсами взаимодействия и наполним её. А в следующих частях начнём писать несложные скрипты, автоматизирующие повторяющиеся операции, такие как добавление новых стоек.
Кроме того, я уже опубликовал отдельную статью о RESTful API, в которой сделал короткий обзор его принципов и работы, это нам понадобится.

Сегодня рынок предлагает около дюжины инструментов, реализующих эту задачу: как платных, так и Open Source.

Для задач этой серии статей я выбрал NetBox по следующим причинам:

  1. Это бесплатно

  2. Он содержит в себе обе необходимые части - инвентаризацию и управление IP-пространством.

  3. У него есть RESTful API-интерфейс.

  4. Его разработал Digital Ocean (а конкретнее, любимый всеми Jeremy Stretch) для себя, то есть для дата-центров. Поэтому тут есть почти всё, что нужно, и почти ничего лишнего.

  5. Он активно поддерживается (Slack, Github, Google-рассылки) и обновляется.

  6. Это Open Source

    Для нужд АДСМ я развернул NetBox в виртуалочке на нашем сервере (спасибо Антону Клочкову и Мирану): http://netbox.linkmeup.ru:45127
    Кроме того я заполнил почти все необходимые нам в дальнейшем данные.
    Поэтому вы можете попробовать почти все примеры и изучать схему данных в режиме чтения, пока не развернули свою инсталляцию.

Немного полезного перед началом: