Ссылка на домашнее задание
Используется Django + Nornir, следуйте пунктам в установке для запуска.
Вроде все делает по заданию, НО не отображает имена интерфейсов. Я взялся делать через mathplotlib + networx и там это не совсем тривиальная задача. Надо больше времени, что разобраться.
Веб открывается по ссылке http://127.0.0.1:8000/
Девайсы добавляются через админку Django, по умолчанию карта строится только между девайсами, которые есть в базе.
Чтобы отображилсь все найденные связи, надо в файле настроек devnet_map/devnet_map/settings.py
поменять параметр ALL_CONNECTIONS
на True
. После перезапустить веб сервер, обычно при изменении в фалах он рестарует сам, если запущен.
Настройки Nornir находятся в папке devnet_map/lldp_map/inventory
. При каждом запуске сбора LLDP инвентори генерится из данных БД.
Логин и пароль берется из переменных среды DEVNET_USERNAME
, DEVNET_PASSWORD
. Поэтому перед запуском надо их задать.
Информация о топологии в машинном виде лежит в файлах devnet_map/lldp_map/static/topology.json
и topology-old.json
. Хранятся только две версии топологии.
При запуске сбора LLDP информация копируется из topology.json
в topology-old.json
. Новая информация записывается в topology.json
.
Картинки хранятся в файлах devnet_map/lldp_map/static/topology.png
и topology-diff.json
.
Add, Editing Devices
кнопка создания, редактирования и удаления девайсов.
Build Topology
постройка новой топологии.
Topology Difference
постройка разницы между топологиями.
Ниже таблица с девайсами и их IP адресами
Кнопка Back
возвращает на страницу с девайсами.
Refresh
запускает заново сбор LLDP и обновляет список и картинку.
Далее идет список всех линков и картинка с топологией.
Кнопка Back
возвращает на страницу с девайсами.
Refresh
запускает заново сравнение.
Не изменившиеся линки черного цвета, новые — зеленого, удаленные — карсного.
Создадим папку под софт
cd /opt
sudo mkdir devnet_map
cd devnet_map
Клонируем в папку репозиторий
sudo git clone https://github.com/miaow2/devnet-marathon-homework-final.git .
Создаем виртуальное окружение для питона и активируем его
sudo python3 -m venv .venv
source .venv/bin/activate
Устанавливаем необходимые библиотеки
sudo pip3 install -r requirements.txt
Переходим в папку и создаем базу данных
cd devnet_map
sudo python3 manage.py migrate
Создаем супер пользователя для доступа к админке и созданию записей в БД
python3 manage.py createsuperuser
Создаем переменные для доступа к девайсам
export DEVNET_USERNAME=username
export DEVNET_PASSWORD=password
Запускаем сервер
sudo python3 manage.py runserver
После этого сервер будет доступен по ссылке http://127.0.0.1:8000/