NetBox インストール · 2 min read · Sep 12, 2025
Ubuntu 24.04サーバーにNetBox IRM(インフラストラクチャリソースモデリングツール)をインストールする方法

NetBoxは、ネットワーク自動化とインフラストラクチャエンジニアリングのために設計されたインフラストラクチャリソースモデリング(IRM)です。最初はDigitalOceanチームによって作成され、現在はApache 2ライセンスの下でリリースされたオープンソースプロジェクトとなっています。
NetBoxはPython Django Webフレームワークで作成され、PostgreSQLがデフォルトのデータベースとして使用されており、NetBoxのインストールは他のPython Django Webアプリケーションと非常に似ています。
このチュートリアルでは、PostgreSQLをデータベースとして、Apacheをリバースプロキシとして使用して、Ubuntu 24.04サーバーにNetBox IRMをインストールする方法を示します。また、CertbotとLetsencryptを使用してHTTPSでNetBoxを保護します。
前提条件
進む前に、以下のものを用意してください:
- Ubuntu 24.04サーバー
- 管理者権限を持つ非ルートユーザー
- サーバーIPアドレスにポイントされたドメイン名
依存関係のインストール
NetBoxをインストールするには、Ubuntuサーバーに依存関係がインストールされていることを確認する必要があります。これにはPython3、PostgreSQLサーバー、Apache Webサーバー、Redis、およびシステムライブラリが含まれます。このセクションでは、APTパッケージマネージャーを使用してこれらのパッケージをインストールします。
まず、以下のコマンドを実行してUbuntuパッケージインデックスを更新します。
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 Webサーバーのステータスを確認します。
sudo systemctl is-enabled apache2
sudo systemctl status apache2以下の出力で、Apacheが実行中で有効になっていることがわかります。

最後に、以下のコマンドでPostgreSQLサーバーのステータスを確認します。
sudo systemctl is-enabled postgresql
sudo systemctl status postgresql以下の出力で、PostgreSQLが有効で実行中であることがわかります(systemdが監視するサービスを見つけられないため、ステータスは終了しています)。

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をUbuntuマシンにダウンロードしてインストールします。ドメイン名、秘密鍵、およびNetbox用のデータベースを設定します。
まず、以下のコマンドを実行して、Ubuntuマシンに新しいユーザー「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 」ディレクトリにコピーします。このスクリプトには、Python WSGIサーバーの下でNetboxを実行するための設定が含まれています。
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インストールはHTTPSが有効なApacheリバースプロキシの下で実行されるはずです。
sudo systemctl restart apache2最後に、ウェブブラウザでhttps://netbox.howtoforge.local/にアクセスすると、Netboxのログインページにリダイレクトされます。管理者のユーザー名とパスワードを入力し、サインインをクリックします。

適切な管理者資格情報があれば、次のNetboxダッシュボードが表示されます。

Admin > Systemメニューをクリックして、Netboxインストールに関する情報を確認します。以下の出力で、Netbox v4.1.7がPostgreSQLデータベースと共にインストールされていることがわかります。

結論
おめでとうございます!Ubuntu 24.04サーバーにNetbox IRMのインストールが完了しました。PostgreSQLをデータベースサーバーとして、Apacheをリバースプロキシとして使用してNetboxを稼働させています。また、Certbotを使用してNetboxをHTTPSで保護しました。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。