Установка плагина
Для работы данного плагина у нас должен стоять napalm и плагин netbox-napalm-plugin, инструкция по настройка которого описывается в предыдущей статье.
Для резервного копирования конфигураций в netbox версии 4 и выше, существует плагин netbox-config-backup (GitHub - DanSheps/netbox-config-backup: A configuration backup system using napalm).
Перед установкой плагина необходимо установить git (если он еще у нас не стоит) для создания локального репозитория где будут храниться конфиги.
И создать репозиторий
$ cd /usr/local/share/netbox/condiff
$ git init
Поскольку я делал это на FreeBSD перед установкой плагина советую сделать симлинк git в каталог /usr/bin из каталога /usr/local/bin/git иначе плагин может не встать.
Устанавливаем из репозиториев или локально.
$ . /usr/local/share/netbox/venv/bin/activate
--- Ставим плагин ---
(venv)$ pip install netbox-config-backup
--- или ставим локально ---
python -m pip install path/to/Plugin
--- Добавляем плагин в зависимости Netbox что бы при обновлении он не слетел ---
(venv)$ echo netbox-config-backup >> /usr/local/share/netbox/requirements.txt
Теперь открываем configuration.py по пути /usr/local/share/netbox/netbox/ и добавляем в раздел PLUGIN и PLUGINS_CONFIG следующие строки.
PLUGINS_CONFIG = {
'netbox_config_backup': {
'repository': '/usr/local/share/netbox/condiff',
'committer': 'netbox commiter@example.com',
'author': 'netbox author@example.com',
'frequency': 3600,
},
Выполняем миграцию и перезапускаем службы
(venv)$ python3.11 /usr/local/share/netbox/netbox/manage.py migrate
--- перезапускаем службы ---
# service netbox restart
# service netboxrq restart
Создаем отдельную службу брокера через которую у нас будут выполняться задания резервного копирования.
# This sample rc script starts the RQ worker background service which is
# required for Webhooks and various automation tasks.
#
# PROVIDE: netbox_ncb
# REQUIRE: DAEMON
# KEYWORD: shutdown
#
# Add the following line to /etc/rc.conf.local or /etc/rc.conf
# to enable netbox-ncb:
#
# netbox_ncb_enable (bool): Set to NO by default.
# Set it to YES to enable netbox_ncb.
. /etc/rc.subr
name=netbox_ncb
rcvar=netbox_ncb_enable
load_rc_config $name
start_cmd="netbox_ncb_start"
start_precmd="netbox_ncb_precmd"
command="/usr/local/share/netbox/venv/bin/python3.11"
command_args="/usr/local/share/netbox/netbox/manage.py rqworker --name ncb@%i --with-scheduler netbox_config_backup.jobs"
pidfile=${netbox_ncb_pidfile:-/var/run/${name}/${name}.pid}
netbox_ncb_user=${netbox_ncb_user:-netbox}
netbox_ncb_precmd()
{
install -d -o ${netbox_ncb_user} `dirname ${pidfile}`
}
netbox_ncb_start()
{
echo "Starting netbox_ncb."
/usr/sbin/daemon -cf -p ${pidfile} -u ${netbox_ncb_user} ${command} ${command_args}
}
run_rc_command "$1"
Или можем также просто попробовать выполнить:
После версии плагина 2.1.4 все кастомные планировщики не нужны, данную службу создавать не нужно, задания должны выполняться через стандартный netbox-rq !!!!!!!!!!!!!!
Настройка Netbox
Для создания конфигов должны соблюдаться несколько условий:
- Установлен и настроен netbox-napalm-plugin;
- заведена платформа которая прописана в настройках napalm-plugin;
- устройства должен быть назначен основной ip адрес и указана платформа
Если все требования соблюдены идем в меню BACKUP JOBS\ Devices и добавляем новое устройство.

В поле name вводим имя бэкапа, выбираем device из перечня заведенных устройств и ip адрес, который мы выбрали основным в настройках устройства.

Поле статус означает, что данный бэкап включен и после сохранения задачи по сбору конфигурации попадут в планировщик.
Поле Config status отвечает всего лишь за визуальное обозначение наличия сохраненного конфига для данного бэкапа.
Если мы провалимся внутрь бекапа, то можем увидеть перечень резервных копий.
Справа можно увидеть две кнопки, первая показывает сам сохраненный конфиг, а вторая если выделить галками два конфига - их различия.
Так же после выхода версии плагина 2.1.4 можно посмотреть статус задач резервного копирования тут:
