インストールガイド · 3 min read · Oct 31, 2025

Debian 12にNetBox IRMをインストールする方法

NetBoxは、ネットワーク自動化およびインフラストラクチャエンジニアリングのために設計されたインフラストラクチャリソースモデリング(IRM)です。最初はDigitalOceanチームによって作成され、現在はApache 2ライセンスの下でリリースされたオープンソースプロジェクトとなっています。NetBoxはPython Django Webフレームワークで作成され、PostgreSQLがデフォルトのデータベースとして使用されており、NetBoxのインストールは他のPython Django Webアプリケーションと非常に似ています。

このガイドでは、Debian 12サーバーにNetBox IRMソフトウェアをステップバイステップでインストールする方法を示します。PostgreSQLをデータベースサーバーとして、Apache2 Webサーバーをリバースプロキシとして使用してNetBoxをインストールする方法を示します。また、SSL/TLS証明書を使用してNetBoxのインストールを保護します。

前提条件

進む前に、次のものを確認してください:

  • Debian 12サーバー。
  • 管理者権限を持つ非rootユーザー。
  • サーバーのIPアドレスを指すパブリックまたはローカルのドメイン名。

依存関係のインストール

NetBoxはPython Django Webフレームワークに基づいたWebアプリケーションです。PostgreSQLデータベースサーバーとキャッシュ管理のためのRedisサーバーと共にインストールできます。

次のステップでは、NetBoxが必要とする依存関係をインストールし、NetBoxのインストールにリバースプロキシとして使用されるApache2 Webサーバーもインストールします。

まず、次のaptコマンドを実行してDebianリポジトリを更新します。

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 Webサーバー、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スクリプトを実行してNextBoxのインストールを開始します。これにより、新しいPython仮想環境が作成され、いくつかのPythonパッケージとライブラリがインストールされ、PostgreSQLサーバーへのデータベースマイグレーションが実行され、NextBoxの静的ファイルが生成されます。

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

Webブラウザを開き、サーバーのIPアドレスの後にポート8000を付けてアクセスします。例えば、http://192.168.10.15:8000/です。インストールが成功していれば、NetBox IRMのインデックスページが表示され、そこから右上のLoginボタンをクリックします。

NETBOX HOME

作成した管理者ユーザーとパスワードを入力し、Sign Inをクリックします。

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/ディレクトリにコピーします。これにより、サービスファイルnetboxnetbox-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のインストールは、ドメイン名を介してアクセスできるはずです。

Webブラウザを開き、NetBoxインストールのドメイン名にアクセスします。例えば、https://netbox.howtoforge.local/です。すべてがうまくいけば、次のようなNetBoxインデックスページが表示されます。

netbox home

ログインすると、Apache2リバースプロキシの下で実行されているNetBox IRMダッシュボードが表示されるはずです。

netbox dashboard

結論

結論として、Debian 12サーバーにPostgreSQLデータベースサーバーとApache2 Webサーバーをリバースプロキシとして使用してNetBox IRMをインストールしました。また、SSL/TLS証明書を介してNetBoxのインストールを保護しました。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。