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 」と入力します。

install deps

インストールが完了したら、以下の「systemctl」コマンドを実行してApache Webサーバーのステータスを確認します。

sudo systemctl is-enabled apache2  
sudo systemctl status apache2

以下の出力で、Apacheが実行中で有効になっていることがわかります。

check apache2

最後に、以下のコマンドでPostgreSQLサーバーのステータスを確認します。

sudo systemctl is-enabled postgresql  
sudo systemctl status postgresql

以下の出力で、PostgreSQLが有効で実行中であることがわかります(systemdが監視するサービスを見つけられないため、ステータスは終了しています)。

check service 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サーバーから退出します。

list databases

list users

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 configure

以下に、NetBoxのデータベース移行が表示されます。

migrate

以下は「 manage.py 」が静的ファイルを生成しているときのものです。

プロセスが完了したら、「 manage.py 」スクリプトを使用してNetBox用の新しい管理者ユーザーを作成する必要があります。

static files

以下のコマンドを実行してNetbox仮想環境をアクティブにします。アクティブになると、シェルは「 (venv) user@hostname 」のようになります。

source /opt/netbox/venv/bin/activate

/opt/netbox/netbox 」ディレクトリに移動し、以下のように「 manage.py 」スクリプトを実行します。

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

NetBox管理者用のユーザー名、メールアドレス、およびパスワードを入力します。

create admin

完了したら、「 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-reload

systemdがリロードされたら、以下の「 systemctl 」コマンドを実行してNetboxサービスを開始し、有効にします。

sudo systemctl enable --now netbox netbox-rq netbox-housekeeping

最後に、以下のコマンドでNetboxサービスを確認して、実行中であることを確認します。

sudo systemctl status netbox netbox-rq netbox-housekeeping

以下の出力で、「 netbox 」サービスが実行中で有効になっていることがわかります。

netbox

netbox-rq 」サービスでは、次のような出力が得られるはずです。

netbox-rq

最後に、「 netbox-housekeeping 」は「 dead 」のステータスで、タイマーとして実行されます。

netbox-housekeeping

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のログインページにリダイレクトされます。管理者のユーザー名とパスワードを入力し、サインインをクリックします。

login

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

dashboard

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

dashboard

結論

おめでとうございます!Ubuntu 24.04サーバーにNetbox IRMのインストールが完了しました。PostgreSQLをデータベースサーバーとして、Apacheをリバースプロキシとして使用してNetboxを稼働させています。また、Certbotを使用してNetboxをHTTPSで保護しました。

Share: X/Twitter LinkedIn

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

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