Graphviz кто только не использует. Им рисуют и логические блок-схемы, и связи таблиц в СУБД, и связи классов какого-то кода, и схемы сетей. На последней я и остановлюсь, как наиболее близкой к системному администрированию тематике. Сразу покажу пример рисования небольшой схемы сети.
Поставить Graphviz можно через apt, так как он есть в базовых репозиториях:
# apt install graphvizТеперь подготовим небольшую схему сети с роутером, свитчами, точкой доступа и стойкой.
graph network { node [ shape=box, fontname="arial", fontsize=8, style=filled, color="#d3edea" ]; splines="compound" label="Схема сети\n "; labelloc="t" fontname="arial"; sw1 [ label="SW-01\n192.168.1.101" ]; sw2 [ label="SW-02\n192.168.1.102" ]; sw3 [ label="SW-03\n192.168.1.103" ]; sw4 [ label="SW-04\n192.168.1.104" ]; router [ label="Router\nVPN Server\n192.168.1.10" color="#cf7b7b"]; wp1 [ label="WiFi\nWP-01\n192.168.1.200" shape=hexagon color="#a8d1b0"]; servers [ label="Servers" fontsize=14 shape=doubleoctagon color="#FF4500"]; router -- sw1; sw1 -- sw2 [color="#ffbb00"]; sw1 -- sw3 [color="#ffbb00"]; sw1 -- wp1 [color="#ffbb00"]; sw2 -- sw4 [color="#ffbb00"]; sw3 -- servers [color="#ffbb00"];}Создаём картинку:
# dot -Tpng network.dot -o network.pngСмотрим её в браузере:
# python3 -m http.server 80Посмотрел примеры, почитал документацию. Где-то час поразбирался, попробовал разные свойства, формы объектов, цвета и т.д. В итоге такую схему набросал. Можно в фон ставить разные картинки к объектам. Не стал с этим заморачиваться.
Graphviz позволяет вести схемы в документациях как код. Хранить их в git, изменять, сохранять историю. Подобного рода продуктов сейчас немало. Конкретно этот мне показался простым. Он из стародавних времён, поэтому формат конфига у него простой и логичный. Я быстро уловил суть, а дальше рисование уже дело техники.
Устанавливать локально его не обязательно. Удобнее рисовать в каком-то онлайн редакторе, где сразу виден результат. Например, тут: https://dreampuf.github.io/GraphvizOnline
⇨ Сайт / Исходники / Онлайн редактор
#схемы