Установка плагина
Для работы данного плагина у нас должен стоять 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"
Или можем также просто попробовать выполнить:
Настройка Netbox
Для создания конфигов должны соблюдаться несколько условий:
- Установлен и настроен netbox-napalm-plugin;
- заведена платформа которая прописана в napalm-plugin;
- устройства должен быть назначен основной ip адрес и указана платформа
Если все требования соблюдены идем в меню BACKUP JOBS\ Devices и добавляем новое устройство.