본문 바로가기

리눅스

NetBox 최신 버전으로 업그레이드하는 방법

728x90
반응형

NetBox 최신 버전으로 업그레이드하는 방법

우분투 서버에 설치된 NetBox v4.5.4를 v4.7.4로 업그레이드하는 방법입니다.

 

데이터베이스와 설정 파일을 백업한 후 최신 소스 코드를 적용하고 플러그인 및 데이터베이스 마이그레이션을 진행한다.

 

현재 버전 및 서비스 상태 확인

cd /opt/netbox

# 현재 체크아웃된 버전 확인
git describe --tags --exact-match

# NetBox 서비스 상태 확인
sudo systemctl status netbox netbox-rq --no-pager

# Python 버전 확인
python3 --version

# PostgreSQL 버전 확인
sudo -u postgres psql -c "SELECT version();"

# Redis 버전 확인
redis-server --version

1. 사전 백업

업그레이드 중 문제가 발생할 경우를 대비해 데이터베이스, 설정 파일 및 미디어 파일을 백업한다.

 

데이터베이스 백업

sudo -u postgres pg_dump -Fc -d netbox_db \
  -f /var/backups/netbox_v4.5.4_backup_$(date +%Y%m%d).dump

설정 파일 및 미디어 백업

sudo cp -a /opt/netbox/netbox/netbox/configuration.py \
  /opt/netbox/netbox/netbox/configuration.py_$(date +%Y%m%d)

sudo cp -a /opt/netbox/netbox/media /opt/netbox/netbox/media_$(date +%Y%m%d)

2. 최신 소스 코드 적용

NetBox 공식 릴리스 노트를 확인한 후 목표 버전으로 변경한다.

cd /opt/netbox

sudo git fetch --tags
sudo git checkout v4.7.4
# 버전 확인
sudo git describe --tags --exact-match

플러그인을 사용하는 경우 NetBox v4.7.4와의 호환성을 먼저 확인한다.

 

플러그인 의존성 확인

사용 중인 플러그인 및 추가 패키지를 등록한다.

sudo vim /opt/netbox/local_requirements.txt
netbox-topology-views
netbox-reorder-rack
django-auth-ldap

기존에 사용 중인 패키지와 플러그인만 등록하고 각 플러그인의 호환 버전을 확인한다.

3. 업그레이드 스크립트 실행

NetBox 설치 디렉터리에서 업그레이드 스크립트를 실행한다.

cd /opt/netbox

sudo ./upgrade.sh

스크립트는 Python 의존성 설치, 데이터베이스 마이그레이션 및 정적 파일 수집 등의 작업을 수행한다.

 

정상적으로 완료되면 다음 메시지가 출력된다.

...
Completed. Total entries: 3161
Upgrade complete! Don't forget to restart the NetBox services:
  > sudo systemctl restart netbox netbox-rq

일반적으로 별도의 수동 마이그레이션은 필요하지 않다. 스크립트 실행 중 오류가 발생했다면 원인을 확인한 후 조치한다.

728x90

참고: 데이터베이스 마이그레이션 및 정적 파일 수집

# 데이터베이스 마이그레이션 상태 확인
sudo /opt/netbox/venv/bin/python \
  /opt/netbox/netbox/manage.py showmigrations

# 데이터베이스 마이그레이션 적용
sudo /opt/netbox/venv/bin/python \
  /opt/netbox/netbox/manage.py migrate

# 정적 파일 수집
sudo /opt/netbox/venv/bin/python \
  /opt/netbox/netbox/manage.py collectstatic --no-input

문서 빌드 패키지 업데이트

sudo /opt/netbox/venv/bin/pip install --upgrade \
  mkdocs mkdocstrings mkdocstrings-python

4. 서비스 재시작

설정 파일 존재 여부를 확인합니다.

sudo test -f /opt/netbox/netbox/netbox/configuration.py \
  && echo "configuration.py: OK"

NetBox 서비스를 재시작한다.

sudo systemctl restart netbox netbox-rq

Nginx 설정이나 관련 구성에도 변경 사항이 있다면 설정을 검증한 후 재시작한다.

sudo nginx -t
sudo systemctl restart nginx

5. 업그레이드 결과 확인

서비스 상태 확인

sudo systemctl status netbox netbox-rq nginx --no-pager

오류 로그 확인

sudo journalctl -u netbox -n 50 --no-pager
sudo journalctl -u netbox-rq -n 50 --no-pager

최종 점검

브라우저에서 NetBox에 접속해 로그인, 기존 데이터 조회, 플러그인 기능 및 첨부 파일 표시 여부를 확인한다.

 

참고URL

- NetBox 업그레이드 가이드

- NetBox 릴리스 노트

- GitHub 릴리스 페이지

 

728x90
반응형