Обложка канала

ServerAdmin.ru

12437 @srv_admin

Авторская информация о системном администрировании.

ServerAdmin.ru

4 года назад
Открыть в
​​Расскажу вам про узкотематический инструмент, который пригодится не многим, но тому, кому актуально, может сильно упростить жизнь. Думаю, все знакомы с сервисом по рисованию всевозможных схем draw.io. Я уже неоднократно писал про него. Сам использую и считаю удобным, универсальным решением для рисования схем IT инфраструктуры. Существует библиотека для Python N2G, с помощью которой можно автоматизировать рисование схем сетевых устройств, реализовав их создание в русле современного принципа infrastructure as a code. Если вы не умеет программировать на Python, может показаться, что это слишком сложно для вас. Но на самом деле ничего сложного нет. Я на пальцах покажу, как нарисовать в автоматическом режиме схему сети в draw.io с помощью библиотеки N2G. Первым делом ставим на сервер Python и Pip. Установка будет зависеть от вашего дистрибутива. В общем случае это делается так: # apt install python3-pip # dnf install python3 Далее ставим необходимые библиотеки и модули. pip install N2G python-igraph openpyxl Вот и вся установка. Теперь создадим простейший код на python, который будет генерировать схему с соединением двух сетевых устройств. from N2G import drawio_diagram diagram = drawio_diagram() diagram.add_diagram("Page-1") diagram.add_node(id="R1") diagram.add_node(id="R2") diagram.add_link("R1", "R2", label="DF", src_label="Gi1/1", trgt_label="GE23") diagram.layout(algo="kk") diagram.dump_file(filename="Sample_graph.drawio", folder="./Output/") Сохраняем файл и запускаем его с помощью python. # python3 diagram.py В директории со скриптом будет создана поддиректория Output, где будет лежать файл Sample_graph.drawio. Его можно загрузить в сервис draw.io и посмотреть схему. В данном примере мы создали одну страницу, в ней две ноды и показали связь между ними через определённые сетевые интерфейсы. Синтаксис библиотеки нагляден и понятен. Знать Python не нужно, чтобы создавать схемы. У библиотеки есть хорошая документация с примерами. Там и про иконки рассказано, и как красоту навести, и всё остальное. С помощью этой библиотеки можно хранить схемы в git с контролем версий и изменений. Я описал только часть функционала этой библиотеки, с которой разобрался сам и которая показалась полезной лично мне. А так она много чего ещё умеет делать. Все подробности в документации. Исходники - https://github.com/dmulyalin/N2G Документация - n2g.readthedocs.io/en/late…ule.html #network