설치 가이드 · 5 min read · Sep 12, 2025
우분투 24.04 서버에 NetBox IRM(인프라 리소스 모델링 도구) 설치하는 방법

NetBox는 네트워크 자동화 및 인프라 엔지니어링을 위해 설계된 인프라 리소스 모델링(IRM) 도구입니다. 처음에는 DigitalOcean 팀에 의해 만들어졌으며, 현재는 Apache 2 라이센스 하에 공개된 오픈 소스 프로젝트입니다.
NetBox는 Python Django 웹 프레임워크로 작성되었으며 PostgreSQL을 기본 데이터베이스로 사용합니다. NetBox의 설치는 다른 Python Django 웹 애플리케이션과 매우 유사합니다.
이 튜토리얼에서는 PostgreSQL을 데이터베이스로 사용하고 Apache를 리버스 프록시로 설정하여 우분투 24.04 서버에 NetBox IRM을 설치하는 방법을 보여줍니다. 또한 Certbot과 Letsencrypt를 통해 HTTPS로 NetBox를 보호합니다.
필수 조건
이동하기 전에 다음 사항을 확인하세요:
- 우분투 24.04 서버
- 관리자 권한이 있는 비루트 사용자
- 서버 IP 주소를 가리키는 도메인 이름
종속성 설치
NetBox를 설치하려면 우분투 서버에 종속성이 설치되어 있어야 합니다. 여기에는 Python3, PostgreSQL 서버, Apache 웹 서버, Redis 및 시스템 라이브러리가 포함됩니다. 이 섹션에서는 APT 패키지 관리자를 사용하여 이러한 패키지를 설치합니다.
먼저, 다음 명령어를 실행하여 우분투 패키지 인덱스를 업데이트합니다.
sudo apt update업데이트가 완료되면 다음 명령어를 사용하여 NetBox의 종속성을 설치합니다. 이 예에서는 PostgreSQL, Apache, Python, Redis, Certbot, 빌드 종속성 및 일부 라이브러리를 설치합니다.
sudo apt install apache2 postgresql postgresql-common libpq-dev redis-server git certbot python3 python3-pip python3-venv python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev libssl-dev zlib1g-dev설치를 확인하려면 ‘ Y ‘를 입력합니다.

설치가 완료되면 아래의 ‘systemctl’ 명령어를 실행하여 Apache 웹 서버 상태를 확인합니다.
sudo systemctl is-enabled apache2
sudo systemctl status apache2다음 출력에서 Apache가 실행 중이고 활성화되어 있는 것을 확인할 수 있습니다.

마지막으로 다음 명령어로 PostgreSQL 서버 상태를 확인합니다:
sudo systemctl is-enabled postgresql
sudo systemctl status postgresql아래 출력에서 PostgreSQL이 활성화되어 있고 실행 중이며 상태가 종료된 것을 확인할 수 있습니다(시스템이 모니터링할 서비스를 찾을 수 없음).

PostgreSQL 설정
종속성이 설치된 후, NetBox가 사용할 새 사용자와 데이터베이스를 생성하여 PostgreSQL 서버를 설정해야 합니다.
아래 명령어를 사용하여 PostgreSQL 서버에 로그인합니다.
sudo -u postgres psql이제 다음 쿼리를 실행하여 비밀번호 ‘ netboxpassword ‘와 함께 새 사용자 ‘ netbox ‘와 새 데이터베이스 ‘ netboxdb ‘를 생성합니다.
CREATE USER netbox LOGIN CREATEDB PASSWORD 'netboxpassword';
CREATE DATABASE netboxdb OWNER netbox;데이터베이스와 사용자가 생성되면 다음 명령어로 PostgreSQL에서 데이터베이스와 사용자 목록을 확인합니다.
\l
\du아래에서 데이터베이스 ‘ netboxdb ‘와 사용자 ‘ netbox ‘가 생성된 것을 확인할 수 있습니다.
‘ quit ‘를 입력하여 PostgreSQL 서버에서 로그아웃합니다.


Netbox 다운로드 및 구성
이제 PostgreSQL 데이터베이스가 준비되었으므로 Netbox를 우분투 머신에 다운로드하고 설치합니다. 도메인 이름, 비밀 키 및 Netbox에 대한 데이터베이스를 설정합니다.
먼저, 아래 명령어를 실행하여 우분투 머신에 새 사용자 ‘netbox’를 생성합니다.
sudo useradd -r -d /opt/netbox -s /usr/sbin/nologin netbox이제 아래 명령어를 실행하여 ‘ git ‘ 명령어로 Netbox 소스 코드를 다운로드하고 소유권을 ‘ netbox ‘ 사용자로 변경합니다.
sudo git clone -b master --depth 1 https://github.com/netbox-community/netbox.git /opt/netbox
sudo chown -R netbox:netbox /opt/netbox‘ /opt/netbox/netbox/netbox ‘ 디렉토리로 이동하고 ‘ generate_secret_key.py ‘ 파일을 실행합니다. 비밀 키를 메모해 두세요.
cd /opt/netbox/netbox/netbox
sudo -u netbox python3 ../generate_secret_key.py다음으로 ‘ configuration.py ‘ 파일을 복사하고 ‘ nano ‘ 편집기를 사용하여 수정합니다.
sudo -u netbox cp configuration_example.py configuration.py
sudo -u netbox nano configuration.py‘ ALLOWED_HOSTS ‘에 로컬 IP 주소와 도메인 이름을 추가합니다.
ALLOWED_HOSTS = ['netbox.howtoforge.local', '192.168.10.60']‘ DATABASE ‘ 섹션에 PostgreSQL 데이터베이스 이름, 사용자 및 비밀번호를 입력합니다.
# 데이터베이스 구성
DATABASE = {
'NAME': 'netboxdb', # 데이터베이스 이름
'USER': 'netbox', # PostgreSQL 사용자 이름
'PASSWORD': 'netboxpassword', # PostgreSQL 비밀번호
'HOST': 'localhost', # 데이터베이스 서버
'PORT': '', # 데이터베이스 포트(기본값을 위해 비워둡니다)
'CONN_MAX_AGE': 300, # 최대 데이터베이스 연결 연령(초)
}비밀 키를 ‘ SECRET_KEY ‘ 섹션에 붙여넣습니다.
SECRET_KEY = '98%D9uh8S%)T0QhQ@Z3zYf%Hik^CqWJ)Uwz%0J7TZUztmNiitG'작업이 완료되면 파일을 저장하고 편집기를 종료합니다.
Netbox 마이그레이션 및 관리자 설정
이제 PostgreSQL 서버로 NetBox를 구성했으므로 데이터베이스를 마이그레이션하고 NetBox 설치를 위한 관리자 사용자를 생성할 준비가 되었습니다.
아래 명령어를 사용하여 ‘ upgrade.sh ‘ 스크립트를 실행합니다. 이 스크립트는 Python 환경을 생성하고, NetBox의 종속성을 설치하고, NetBox 데이터베이스를 마이그레이션하고, Redis에 연결한 다음 정적 파일을 생성합니다.
sudo -u netbox /opt/netbox/upgrade.sh
아래에서 NetBox의 데이터베이스 마이그레이션을 확인할 수 있습니다.

그리고 아래에서 ‘ manage.py ‘가 정적 파일을 생성하는 모습을 확인할 수 있습니다.
프로세스가 완료되면 ‘ manage.py ‘ 스크립트를 통해 NetBox의 새 관리자 사용자를 생성해야 합니다.

Netbox 가상 환경을 활성화하려면 다음 명령어를 실행합니다. 활성화되면 셸이 ‘ (venv) user@hostname ‘와 같이 변경됩니다.
source /opt/netbox/venv/bin/activate‘ /opt/netbox/netbox ‘ 디렉토리로 이동하고 다음과 같이 ‘ manage.py ‘ 스크립트를 실행합니다:
cd /opt/netbox/netbox
python3 manage.py createsuperuserNetBox 관리자를 위한 사용자 이름, 이메일 주소 및 비밀번호를 입력합니다.

완료되면 ‘ deactivate ‘ 명령어를 실행하여 NetBox 가상 환경에서 로그아웃합니다.
NetBox를 서비스로 실행
이 섹션에서는 NetBox를 systemd 서비스로 실행하는 데 사용할 NetBox 구성을 복사합니다. NetBox가 Gunicorn에서 실행되고 있는지 확인한 다음 NetBox 서비스 파일을 ‘ /etc/systemd/system ‘ 디렉토리에 복사해야 합니다.
먼저, ‘ gunicorn.py ‘ 스크립트를 ‘ /opt/netbox ‘ 디렉토리로 복사합니다. 이 스크립트는 NetBox가 Python WSGI 서버에서 실행되도록 구성하는 내용을 포함합니다.
sudo -u netbox cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py이제 아래 명령어를 실행하여 NetBox의 서비스 파일을 ‘ /etc/systemd/system ‘ 디렉토리에 복사하고 systemd 관리자를 다시 로드합니다.
sudo cp -v /opt/netbox/contrib/*.service /etc/systemd/system/
sudo systemctl daemon-reloadsystemd가 다시 로드되면 아래의 ‘ systemctl ‘ 명령어를 실행하여 NetBox 서비스를 시작하고 활성화합니다.
sudo systemctl enable --now netbox netbox-rq netbox-housekeeping마지막으로 다음 명령어로 NetBox 서비스가 실행 중인지 확인합니다.
sudo systemctl status netbox netbox-rq netbox-housekeeping다음 출력에서 ‘ netbox ‘ 서비스가 실행 중이고 활성화되어 있는 것을 확인할 수 있습니다.

‘ netbox-rq ‘ 서비스의 경우 다음과 같은 출력이 나타납니다:

마지막으로 ‘ netbox-housekeeping ‘ 서비스는 상태가 ‘ dead ‘로 표시되며, 이는 타이머로 실행될 것임을 나타냅니다.

Apache를 리버스 프록시로 구성
이 시점에서 NetBox는 Python WSGI 서버 아래에서 서비스로 실행되고 있습니다. 외부에서 접근할 수 있도록 Apache를 리버스 프록시로 구성해야 합니다. 그 전에 NetBox 설치를 보호하기 위해 SSL 인증서를 생성해야 합니다.
먼저, 아래 명령어를 실행하여 ‘ apache2 ‘ 서비스를 중지합니다.
sudo systemctl stop apache2이제 아래의 ‘ certbot ‘ 명령어를 사용하여 Letsencrypt에서 SSL 인증서를 생성합니다. 도메인 이름과 이메일 주소를 자신의 정보로 변경해야 합니다.
sudo certbot certonly --standalone --preferred-challenges http -d netbox.howtoforge.local프로세스가 완료되면 SSL 인증서는 ‘ /etc/letsencrypt/live/domain.com ‘ 디렉토리에 저장됩니다.
다음으로, NetBox에 대한 Apache 구성을 ‘ /etc/apache2/sites-available/netbox.conf ‘ 파일로 복사하고 ‘ nano ‘ 편집기를 사용하여 수정합니다.
sudo cp /opt/netbox/contrib/apache.conf /etc/apache2/sites-available/netbox.conf
sudo nano /etc/apache2/sites-available/netbox.conf‘ ServerName ‘ 옵션 내의 도메인 이름을 교체하고 SSL 인증서의 경로를 변경합니다.
# 이 부분을 서버의 이름으로 변경하세요
ServerName netbox.howtoforge.local
...
ProxyPreserveHost On
# 이 부분을 서버의 이름으로 변경하세요
ServerName netbox.howtoforge.local
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/netbox.howtoforge.local/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/netbox.howtoforge.local/privkey.pem
...
작업이 완료되면 파일을 저장하고 편집기를 종료합니다.
이제 아래 명령어를 실행하여 Apache 모듈과 가상 호스트 파일 ‘ netbox.conf ‘를 활성화합니다.
sudo a2enmod ssl proxy proxy_http headers rewrite
sudo a2ensite netbox.conf가상 호스트가 활성화되면 아래 명령어를 실행하여 Apache를 재시작하고 변경 사항을 적용합니다. 이를 통해 NetBox 설치가 Apache 리버스 프록시 아래에서 HTTPS가 활성화된 상태로 실행됩니다.
sudo systemctl restart apache2마지막으로 웹 브라우저에서 https://netbox.howtoforge.local/를 방문하면 NetBox 로그인 페이지로 리디렉션됩니다. 관리자 사용자 이름과 비밀번호를 입력한 후 로그인을 클릭합니다.

올바른 관리자 자격 증명이 있는 경우 다음과 같은 NetBox 대시보드를 볼 수 있습니다.

Admin > System 메뉴를 클릭하여 NetBox 설치 정보를 확인합니다. 다음 출력에서 PostgreSQL 데이터베이스와 함께 NetBox v4.1.7이 설치된 것을 확인할 수 있습니다.

결론
축하합니다! 우분투 24.04 서버에 NetBox IRM 설치를 완료했습니다. PostgreSQL을 데이터베이스 서버로 사용하고 Apache를 리버스 프록시로 설정하여 NetBox를 실행 중입니다. 또한 Certbot을 통해 NetBox를 HTTPS로 보호했습니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.