Обновление NetBox
Процедура обновления NetBox, установленного из git-репозитория в
/opt/netbox. Перед мажорным обновлением проверьте в release notes требования к версиям Python и PostgreSQL и breaking changes.
Подготовка
- Смотрим текущую версию: веб-интерфейс → нижний правый угол или
grep -m1 VERSION /opt/netbox/netbox/netbox/settings.py
- Делаем резервную копию базы и конфигурации:
sudo -u postgres pg_dump netbox > /backup/netbox-$(date +%F).sql
cp /opt/netbox/netbox/netbox/configuration.py /backup/
Через несколько мажорных версий перепрыгивать нельзя — обновляйтесь последовательно (например, 3.7 → 4.0 → 4.1), сверяясь с release notes.
Обновление
cd /opt/netbox
sudo git checkout master
sudo git pull origin master
Если нужна конкретная версия — вместо master указываем тег:
sudo git fetch --tags
sudo git checkout v4.1.7
Запускаем штатный скрипт обновления — он пересоздаст виртуальное окружение, установит зависимости, применит миграции БД и соберёт статику:
sudo ./upgrade.sh
Перезапускаем службы:
sudo systemctl restart netbox netbox-rq
Проверка
systemctl status netbox netbox-rq
Открываем веб-интерфейс, проверяем версию в футере и работу основных разделов (IPAM → Prefixes).
Если что-то пошло не так
- Логи:
journalctl -u netbox -eи выводupgrade.sh; - частая причина ошибок
upgrade.sh— версия Python ниже требуемой новой веткой NetBox (смотрим release notes, обновляем Python, повторяем); - откат:
git checkout <старый-тег>, восстановление базы из дампа, повторныйupgrade.sh.
Официальная документация: https://netbox.readthedocs.io/en/stable/installation/upgrading/
Организация данных в нашем NetBox описана в статье NetBox — организация работы с IPAM.