설치 가이드 · 8 min read · Oct 31, 2025

Debian 12에 NetBox IRM 설치하는 방법

NetBox는 네트워크 자동화 및 인프라 엔지니어링을 위해 설계된 인프라 리소스 모델링(IRM)입니다. 처음에는 DigitalOcean 팀에 의해 만들어졌으며, 현재는 Apache 2 라이선스 하에 공개 소스 프로젝트로 출시되었습니다. NetBox는 Python Django 웹 프레임워크로 만들어졌으며 PostgreSQL을 기본 데이터베이스로 사용하며, NetBox의 설치는 다른 Python Django 웹 애플리케이션과 매우 유사합니다.

이 가이드에서는 Debian 12 서버에 NetBox IRM 소프트웨어를 단계별로 설치하는 방법을 보여줍니다. PostgreSQL을 데이터베이스 서버로, Apache2 웹 서버를 리버스 프록시로 사용하여 NetBox를 설치하는 방법을 보여줍니다. 또한 SSL/TLS 인증서를 사용하여 NetBox 설치를 보안합니다.

전제 조건

진행하기 전에 다음 사항을 확인하십시오:

  • Debian 12 서버.
  • 관리자 권한이 있는 비루트 사용자.
  • 서버 IP 주소를 가리키는 공용 또는 로컬 도메인 이름.

종속성 설치

NetBox는 Python Django 웹 프레임워크를 기반으로 한 웹 애플리케이션입니다. PostgreSQL 데이터베이스 서버와 Redis 서버를 캐시 관리용으로 설치할 수 있습니다.

다음 단계에서는 NetBox에 필요한 종속성을 설치하고, NetBox 설치에 리버스 프록시로 사용될 Apache2 웹 서버도 설치합니다.

먼저, Debian 저장소를 업데이트하기 위해 다음 apt 명령을 실행합니다.

sudo apt update

update repo

그런 다음 NetBox IRM 설치를 위한 패키지 종속성을 설치합니다.

sudo apt install apache2 postgresql postgresql-common libpq-dev redis-server git python3 python3-pip python3-venv python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev  libssl-dev zlib1g-dev

Apache2 웹 서버, PostgreSQL 데이터베이스 서버, Redis, Git, Python3 패키지 및 기타 시스템 라이브러리와 같은 종속성 설치를 진행하려면 y를 입력합니다.

install dependencies

종속성이 설치된 후, 아래 명령을 실행하여 각 종속성을 확인합니다.

apache2 서비스가 활성화되고 실행 중인지 확인합니다.

sudo systemctl is-enabled apache2  
sudo systemctl status apache2

apache2가 실행 중이고 활성화되어 있으면 다음과 같은 출력이 표시됩니다:

check apache2

PostgreSQL 서비스가 실행 중이고 활성화되어 있는지 확인합니다.

sudo systemctl is-enabled postgresql  
sudo systemctl status postgresql

PostgreSQL 서비스는 다음과 같이 실행 중이고 활성화되어 있어야 합니다:

check postgresql

이제 Redis 서비스가 실행 중이고 활성화되어 있는지 확인합니다.

sudo systemctl is-enabled redis  
sudo systemctl status redis

Redis 서비스는 다음과 같이 실행 중이고 활성화되어 있어야 합니다:

check redis

마지막으로 아래 명령을 사용하여 Python 버전을 확인합니다. 최신 버전의 NetBox IRM은 Python v3.9, 3.10 및 3.11을 지원합니다.

python3 --version

Debian 머신에 Python 3.11이 설치되어 있어야 합니다.

PostgreSQL 서버 구성

종속성을 설치한 후, NetBox가 사용할 새로운 PostgreSQL 데이터베이스와 사용자를 생성합니다. 이를 위해 psql 명령줄을 통해 PostgreSQL 서버에 로그인해야 합니다.

아래 명령을 실행하여 PostgreSQL 서버에 로그인합니다.

sudo -u postgres psql

다음 쿼리를 실행하여 비밀번호 p4ssw0rd로 사용자 netbox를 생성합니다. 그런 다음 소유자 netbox로 새로운 데이터베이스 netboxdb를 생성합니다.

CREATE USER netbox LOGIN CREATEDB PASSWORD 'p4ssw0rd';  
CREATE DATABASE netboxdb OWNER netbox;

create database user

그 후, 아래 명령을 실행하여 PostgreSQL의 사용자 및 데이터베이스 목록을 확인합니다.

\l  
\du

PostgreSQL 서버에 데이터베이스 netboxdb와 사용자 netbox가 생성된 것을 확인할 수 있습니다.

check database user

PostgreSQL 서버에서 나가려면 quit를 입력합니다.

다음으로, 새로운 사용자 netbox로 데이터베이스 netboxdb에 로그인합니다. 이는 사용자 netbox가 데이터베이스 netboxdb에 연결할 수 있도록 보장합니다.

sudo -u postgres psql --username netbox --password --host localhost netboxdb

연결되면 다음 쿼리를 사용하여 연결을 확인합니다.

\conninfo

다음 출력에서 사용자 netbox로 데이터베이스 netboxdb에 연결된 것을 확인할 수 있습니다.

verify connection

다시 quit를 입력하여 PostgreSQL 서버에서 나갑니다.

Redis 서버 구성

PostgreSQL 데이터베이스와 사용자가 생성되었으므로, 다음 단계는 NetBox의 캐시 관리에 사용될 Redis 서버를 구성하는 것입니다. 이를 위해 Redis 구성 파일 /etc/redis/redis.conf를 수정하고 redis-cli를 통해 변경 사항을 확인합니다.

다음 nano 편집기 명령을 사용하여 기본 Redis 구성 파일 /etc/redis/redis.conf를 엽니다.

sudo nano /etc/redis/redis.conf

옵션 requirepass의 주석을 제거하고 Redis 서버를 보호하는 데 사용할 비밀번호를 입력합니다.

requirepass p4ssw0rdNetBox

작업이 끝나면 파일을 저장하고 종료합니다.

이제 다음 systemctl 명령을 실행하여 Redis 서비스를 재시작하고 변경 사항을 적용합니다.

sudo systemctl restart redis

모든 것이 작동하는지 확인하기 위해 redis-cli를 통해 Redis를 확인할 수 있습니다. 아래 redis-cli 명령을 사용하여 Redis 서버에 접근합니다.

redis-cli

다음 AUTH 쿼리를 사용하여 Redis 서버에 인증하고 비밀번호를 변경해야 합니다.

AUTH p4ssw0rdNetBox

인증이 완료되면 OK라는 출력을 받아야 합니다.

이제 연결이 성공적인지 확인하기 위해 아래 PING 쿼리를 실행합니다.

PING

성공하면 Redis 서버에서 PONG이라는 출력을 받아야 합니다.

configure redis

NetBox IRM 설치

다음 섹션에서는 NetBox IRM을 시스템에 다운로드하고 설치합니다. Git를 통해 NetBox 소스 코드를 다운로드한 후, NetBox 구성을 수정하여 PostgreSQL 데이터베이스 서버와 Redis를 추가하고, NetBox의 관리자 사용자를 생성합니다.

먼저, NetBox 설치를 실행하는 데 사용할 새로운 systemd 사용자 netbox를 생성하기 위해 아래 명령을 실행합니다.

sudo useradd -r -d /opt/netbox -s /usr/sbin/nologin netbox

Git를 통해 NetBox IRM 소스 코드를 다운로드하고 /opt/netbox 디렉토리의 소유권을 사용자 netbox로 변경합니다.

cd /opt; sudo git clone -b master --depth 1 https://github.com/netbox-community/netbox.git  
sudo chown -R netbox:netbox /opt/netbox

create user download netbox

다음으로 작업 디렉토리를 /opt/netbox로 이동하고 스크립트 generate_secret_key.py를 통해 NetBox 비밀 키를 생성합니다. 생성된 비밀 키는 NetBox 설치에 사용될 것입니다.

cd /opt/netbox/netbox/netbox  
sudo -u netbox python3 ../generate_secret_key.py

기본 구성 파일 configuration_example.pyconfiguration.py로 복사한 후, 다음 nano 편집기 명령을 사용하여 새 파일 configuration.py를 엽니다.

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.15']

DATABASE 섹션에 PostgreSQL 데이터베이스 세부 정보를 입력합니다. 데이터베이스 이름, 사용자, 비밀번호, 호스트 및 포트를 포함합니다.

# database configuration  
DATABASE = {  
    'NAME': 'netboxdb',               # Database name  
    'USER': 'netbox',               # PostgreSQL username  
    'PASSWORD': 'p4ssw0rd', # PostgreSQL password  
    'HOST': 'localhost',            # Database server  
    'PORT': '',                     # Database port (leave blank for default)  
    'CONN_MAX_AGE': 300,            # Max database connection age (seconds)  
}

REDIS 섹션 내에 Redis 서버의 세부 정보를 입력하여 작업 및 캐싱 옵션을 설정합니다.

# Redis cache configuration  
REDIS = {  
    'tasks': {  
        'HOST': 'localhost',      # Redis server  
        'PORT': 6379,             # Redis port  
        'PASSWORD': 'p4ssw0rdNetBox',           # Redis password (optional)  
        'DATABASE': 0,            # Database ID  
        'SSL': False,             # Use SSL (optional)  
    },  
    'caching': {  
        'HOST': 'localhost',  
        'PORT': 6379,  
        'PASSWORD': 'p4ssw0rdNetBox',  
        'DATABASE': 1,            # Unique ID for second database  
        'SSL': False,  
    }  
}

마지막으로 비밀 키를 SECRET_KEY 섹션에 입력합니다.

# Secret key  
SECRET_KEY = 'ZjYbgz$)j!NnqJcZLR!NB2BCz4(Yyk=o^Xr(1sTIrM)ZyiE%nk'

작업이 끝나면 파일을 저장하고 종료합니다.

다음으로 /opt/netbox/upgrade.sh 스크립트를 실행하여 NetBox 설치를 시작합니다. 이 작업은 새로운 Python 가상 환경을 생성하고, 일부 Python 패키지 및 라이브러리를 설치하고, PostgreSQL 서버로 데이터베이스 마이그레이션을 실행하며, NetBox의 정적 파일을 생성합니다.

sudo -u netbox /opt/netbox/upgrade.sh

아래는 프로세스 중에 얻을 수 있는 유사한 출력입니다.

netbox installation

데이터베이스 마이그레이션 프로세스.

database migration

정적 파일 생성 프로세스.

generate static files

설치가 완료되면 다음과 같은 출력이 표시됩니다.

installation finished

NetBox가 구성된 후, NetBox의 관리자 사용자를 생성합니다. 이를 위해 다음 명령을 사용하여 생성된 Python 가상 환경에 로그인합니다.

source /opt/netbox/venv/bin/activate

/opt/netbox/netbox 디렉토리로 이동하고 manage.py 스크립트를 실행하여 NetBox 관리자 사용자를 생성합니다.

cd /opt/netbox/netbox  
python3 manage.py createsuperuser

요청 시 관리자 이메일 주소, 사용자 이름 및 비밀번호 세부 정보를 입력합니다.

create superuser

다시 manage.py를 실행하여 NetBox 설치를 확인합니다. 이를 통해 로컬 IP 주소에서 포트 8000으로 NetBox를 실행합니다.

python3 manage.py runserver 0.0.0.0:8000 --insecure

running netbox

웹 브라우저를 열고 서버 IP 주소 뒤에 포트 8000을 추가하여 방문합니다. 예: http://192.168.10.15:8000/. 설치가 성공하면 NetBox IRM 인덱스 페이지가 표시되며, 거기서 오른쪽 상단의 로그인 버튼을 클릭합니다.

NETBOX HOME

생성한 관리자 사용자와 비밀번호를 입력한 후 로그인을 클릭합니다.

LOGIN NETBOX

모든 것이 잘 진행되면 다음과 같은 NetBox 대시보드가 표시됩니다:

netbox daSHBOARD

터미널로 돌아가 Ctrl+c를 눌러 프로세스를 종료합니다.

NetBox를 Systemd 서비스로 실행

이 시점에서 Debian 머신에 NetBox IRM을 설치했습니다. NetBox를 관리하기 쉽게 하기 위해 NetBox를 systemd 서비스로 실행하여 systemctl 유틸리티를 통해 NetBox를 제어할 수 있도록 합니다.

파일 /opt/netbox/contrib/gunicorn.py/opt/netbox/gunicorn.py로 복사한 다음, 아래 nano 편집기 명령을 사용하여 gunicorn.py 파일을 엽니다.

sudo -u netbox cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py  
sudo -u netbox nano /opt/netbox/gunicorn.py

bind 옵션을 다음과 같이 변경합니다. 이렇게 하면 localhost 포트 8001에서 gunicorn을 통해 NetBox 설치가 실행됩니다.

bind = '127.0.0.1:8001'

작업이 끝나면 파일을 저장하고 닫습니다.

다음으로 NetBox의 systemd 서비스 파일을 /etc/systemd/system/ 디렉토리로 복사합니다. 이렇게 하면 서비스 파일 netbox, netbox-rq, netbox-housekeeping/etc/systemd/system/ 디렉토리로 복사됩니다. 그런 다음 systemd 관리자를 새 변경 사항을 적용하기 위해 다시 로드합니다.

sudo cp -v /opt/netbox/contrib/*.service /etc/systemd/system/  
sudo systemctl daemon-reload

이제 아래 systemctl 명령을 사용하여 netbox 및 netbox-rq 서비스를 시작하고 활성화할 수 있습니다. 명령을 실행한 후 NetBox 설치가 백그라운드에서 systemd 서비스로 실행됩니다.

sudo systemctl start netbox netbox-rq netbox-housekeeping  
sudo systemctl enable netbox netbox-rq netbox-housekeeping

마지막으로 아래 명령을 사용하여 netbox 및 netbox-rq 서비스를 확인합니다.

sudo systemctl status netbox  
sudo systemctl status netbox-rq

다음 출력은 netbox 서비스가 실행 중이고 활성화되어 있음을 나타냅니다.

check netbox

아래 출력은 netbox-rq 서비스가 실행 중이고 활성화되어 있음을 확인합니다.

netbox rq

Apache를 리버스 프록시로 구성

다음 단계에서는 Apache2를 리버스 프록시로 구성합니다. 그 전에 서버 IP 주소를 가리키는 도메인 이름이 있는지 확인하고, 로컬 도메인 이름을 사용할 수도 있습니다.

로컬 도메인을 사용하는 경우, 다음 openssl 명령을 실행하여 SSL 인증서를 생성할 수 있습니다. 공용 도메인을 사용하는 경우, Certbot을 사용하여 Letsencrypt에서 SSL 인증서를 생성할 수 있습니다.

openssl req -x509 -newkey rsa:4096 -sha256 -days 365 \  
  -nodes -keyout /etc/ssl/private/netbox.key -out /etc/ssl/certs/netbox.crt -subj "/CN=netbox.howtoforge.local" \  
  -addext "subjectAltName=DNS:netbox.howtoforge.local,IP:192.168.10.15"

이제 NetBox에 대한 Apache 가상 호스트 구성 예제를 /etc/apache2/sites-available/netbox.conf로 복사합니다. 그런 다음 아래 nano 편집기 명령을 사용하여 파일 /etc/apache2/sites-available/netbox.conf를 수정합니다.

sudo cp /opt/netbox/contrib/apache.conf /etc/apache2/sites-available/netbox.conf  
sudo nano /etc/apache2/sites-available/netbox.conf

도메인 이름을 변경하고 SSL/TLS 인증서의 경로를 적절한 경로 파일로 변경합니다.

  
    # CHANGE THIS TO YOUR SERVER'S NAME  
    ServerName netbox.howtoforge.local  
    ...  
  
  
  
    ProxyPreserveHost On  
  
    # CHANGE THIS TO YOUR SERVER'S NAME  
    ServerName netbox.howtoforge.local  
  
    SSLEngine on  
    SSLCertificateFile /etc/ssl/certs/netbox.crt  
    SSLCertificateKeyFile /etc/ssl/private/netbox.key  
  
    ...  

작업이 끝나면 파일을 저장하고 종료합니다.

이제 NetBox에 필요한 일부 Apache2 모듈을 활성화하기 위해 다음 명령을 실행합니다.

sudo a2enmod ssl proxy proxy_http headers rewrite

그 후, 다음 명령을 실행하여 가상 호스트 파일 netbox.conf를 활성화하고 Apache2 구성을 확인하여 올바른 구문인지 확인합니다.

sudo a2ensite netbox.conf  
sudo apachectl configtest

Apache2 구문이 올바르면 Syntax OK라는 출력을 받아야 합니다.

apache2 netbox

이제 다음 명령을 실행하여 Apache2 서비스를 재시작하고 변경 사항을 적용합니다.

sudo systemctl restart apache2

NetBox 설치는 도메인 이름을 통해 접근할 수 있어야 합니다.

웹 브라우저를 열고 NetBox 설치의 도메인 이름을 방문합니다. 예: https://netbox.howtoforge.local/. 모든 것이 잘 진행되면 다음과 같은 NetBox 인덱스 페이지가 표시됩니다:

netbox home

로그인 후, Apache2 리버스 프록시 아래에서 실행 중인 NetBox IRM 대시보드를 볼 수 있습니다.

netbox dashboard

결론

결론적으로, 이제 PostgreSQL 데이터베이스 서버와 Apache2 웹 서버를 리버스 프록시로 사용하여 Debian 12 서버에 NetBox IRM을 설치했습니다. 또한 SSL/TLS 인증서를 통해 NetBox 설치를 보안했습니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.