Установка napalm
Для просмотра конфигурации устройств в netbox есть плагин, который называется netbox-napalm-plugin, он позволяет просматривать определенную информацию запрашиваемую у коммутатора или маршрутизатора, имеющего ssh или другой api через интерфейс netbox, про этом в самом netbox ничего не хранится.
Для начала необходимо установить сам napalm, плагин netbox-napalm-plugin и в нашем случае драйвер для RouterOS - napalm-ros.
При этом данные пакеты лучше добавить в зависимости самого netbox, что бы не было проблем при обновлении в будущем.
---Воспользуемся виртуальным окружением Netbox---
$ . venv/bin/activate
---Добавляем зависимости---
(venv)$ echo netbox-napalm-plugin >> /usr/local/share/netbox/requirements.txt
(venv)$ echo napalm-ros >> /usr/local/share/netbox/requirements.txt
---Ставим плагины---
(venv)$ pip install netbox-napalm-plugin
(venv)$ pip install napalm-ros
napalm позволяет запрашивать с оборудования структурированные данные в формате json, что в свою очередь очень удобно при использовании с сторонними API.
После установки необходимо добавить записи в конфиг /usr/local/share/netbox/netbox/netbox/configuration.py
2
3
4
5
6
7
8
9
10
11
PLUGINS_CONFIG = {
'netbox_napalm_plugin': {
'NAPALM_USERNAME': '<ssh_user>',
'NAPALM_PASSWORD': '<ssh_Password>',
'NAPALM_ARGS': {
'api_key': '<netbox-api>',
'ssh_port': '22',
}
}
}
Для например cisco требуются сообщать secret после ввода логина и пароля, для этого мы можем указывать дополнительные аргументы в конфигурационном файле:
NAPALM_ARGS = { 'secret': NAPALM_PASSWORD, # Include any additional args here }
(venv)$ python3.11 netbox/manage.py migrate
(venv)$ python3.11 netbox/manage.py collectstatic --no-input
---Перезапускаем службы---
# service netbox restart
# service netbox_rq restart
На примере микротиков, нам надо завести на всех устройствах учетку для napalm и разрешить подключаться с netbox к api и по ssh.
Добавление и настройка устройств в Netbox
После установки плагина у нас в меню появиться новый пункт:

К данному меню вернемся позже.
Для начала проверим правильно ли мы настроили устройства и можно ли запросить у них информацию через napalm.
Для этого можно выполнить команду
Мы увидим вывод:
"uptime": 7331045.0,
"vendor": "MikroTik",
"model": "CCR1036-8G-2S+",
"hostname": "CORE-MSK-ITSOFT",
"fqdn": "",
"os_version": "6.49.13 (long-term)",
"serial_number": "C6CC0C33A2EA",
"interface_list": [
.......
Теперь для того, что бы napalm мог запрашивать данные с устройств, нам необходимо добавить производителя:

платформу, где выберем ранее добавленного производителя:

И тип устройства, который можно добавить из шаблона или забить руками.
Далее в появившемся меню napalm, о котором говорилось в самом начале, создаем новую запись, где выбираем нашу платформу и указываем для нее драйвер napalm, в нашем случае "ros".

Теперь мы можем добавить устройство.

Заполняем все обязательные поля и платформу, которую мы ранее добавили.


После создания устройства переходим во вкладку интерфейсы и добавляем Ip адрес интерфейсу.

Вбиваем адрес с префиксом маски подсети и возвращаемся обратно в редактирование устройства, где в качестве основного адреса выбираем только что добавленный адрес.

Сохраняем и теперь мы можем увидеть, что у нас появились новые вкладки на странице устройства.



Еще раз напоминаю, данные получаемые по napalm не хранятся в netbox, а каждый раз запрашиваются с устройства.