Пост

[Решено] Обновить Netbox 3.7 до 4.0 в Rocky Linux 9

Netbox — веб приложение с открытым исходным кодом, разработанное для управления и документирования компьютерных сетей. Изначально Netbox придуман командой сетевых инженеров DigitalOcean специально для системных администраторов.

В операционной системе Rocky Linux по умолчанию установлен Python 3.9. Для установки Netbox v.4 требует Python 3.10

В одной из прошлых статей я рассмотрел вариант установки Python 3.12 в Rocky Linux 9

Подготовка к обновления

Перед обновление обязательно делаем бэкап

Обновляем ОС до релиза и перезагружаемся

1
2
$ sudo dnf -y update
$ sudo reboot

Скачиваем архив, распаковываем его, меняем владельца

1
2
3
4
$ cd /opt
$ sudo wget https://github.com/netbox-community/netbox/archive/refs/tags/v4.0.1.tar.gz
$ sudo tar -xvf v4.0.1.tar.gz
$ sudo chown -R netbox:netbox netbox-4.0.1

Переносим конфиги

1
2
3
$ sudo cp /opt/netbox-3.7.7/netbox/netbox/configuration.py /opt/netbox-4.0.1/netbox/netbox/configuration.py
$ sudo cp /opt/netbox-3.7.7/local_requirements.txt /opt/netbox-4.0.1/local_requirements.txt
$ sudo -u netbox cp /opt/netbox-4.0.1/contrib/gunicorn.py /opt/netbox-4.0.1/gunicorn.py

Пересоздаем симлинк

1
2
3
$ sudo rm netbox
$ sudo ln -s netbox-4.0.1 netbox
$ sudo chown -h netbox:netbox netbox

Установка необходимых пакетов

Без установки необходимых пакетов Netbox не запустится, т.к. некоторые компоненты python требуют дополнительных библиотек

1
2
3
4
5
6
$ sudo dnf --enablerepo=crb install perl-IPC-Run
$ sudo dnf install libpq
$ sudo dnf groupinstall "Development Tools"
$ sudo dnf install libpq-devel
$ sudo dnf install python3-devel
$ sudo dnf install postgresql15-devel

Ошибка обновления

Во время обновления Netbox появлялась следующая ошибка

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Collecting psycopg-c==3.1.18 (from psycopg[c,pool]==3.1.18->-r requirements.txt (line 28))
  Using cached psycopg-c-3.1.18.tar.gz (561 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Preparing metadata (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [8 lines of output]
      running dist_info
      creating /tmp/pip-modern-metadata-xyoiy4dk/psycopg_c.egg-info
      writing /tmp/pip-modern-metadata-xyoiy4dk/psycopg_c.egg-info/PKG-INFO
      writing dependency_links to /tmp/pip-modern-metadata-xyoiy4dk/psycopg_c.egg-info/dependency_links.txt
      writing top-level names to /tmp/pip-modern-metadata-xyoiy4dk/psycopg_c.egg-info/top_level.txt
      writing manifest file '/tmp/pip-modern-metadata-xyoiy4dk/psycopg_c.egg-info/SOURCES.txt'
      couldn't run 'pg_config' --includedir: [Errno 2] No such file or directory: 'pg_config'
      error: [Errno 2] No such file or directory: 'pg_config'
      [end of output]

Решение ошибки

1
$ sudo PATH=$PATH:/usr/pgsql-15/bin/ pip install psycopg-c==3.1.18

Обновление

Переходим в каталог, запускаем обновление, перезапускаем сервисы

1
2
3
$ cd /opt/netbox
$ sudo ./upgrade.sh
$ sudo systemctl restart netbox netbox-rq
Авторский пост защищен лицензией CC BY 4.0 .

© IT Draft. Некоторые права защищены.