はじめに
最近、他部署で、Excelを使ったIPアドレスやホスト情報の管理に課題を感じている様子があり、
管理の属人化や更新ミスといったリスクを減らすため、NetBoxの導入が検討されるようになりました。
せっかくなので、自分でもNetBoxの動作確認を兼ねて、簡単に触ってみることにしました。
今回は、AWS上にNetBoxのコンテナ環境を構築し、ログインできるまでの流れをまとめます。
TL;DR
- NetBoxのコンテナ構築は、専用のGitHubリポジトリを使うことでお手軽に実行可能
- セキュリティグループでTCP22とTCP8000を許可するのを忘れずに
実行環境
- OS: Amazon Linux 2023
詳細
1. EC2インスタンスの構築
- 最低限、以下の要件でEC2インスタンスを構築する
- インスタンスタイプ: t2.small
- セキュリティグループ(インバウンド): TCP22とTCP8000を許可
2. Dockerのインストール
-
EC2インスタンスにログイン
- ユーザー: ec2-user
- ポート: 22
-
Dockerのインストール
sudo yum update -y sudo yum -y install docker
-
サービス起動
sudo systemctl start docker sudo systemctl enable docker
-
dockerグループに追加
sudo usermod -aG docker $USER
-
設定を反映させるため、一度ログアウトしてから再ログインする
- VSCodeの場合は
Remote-SSH: Kill VS Code Server on Host
- VSCodeの場合は
-
sudoなしでdockerコマンドが実行可能であることを確認
docker run hello-world
3. Docker Composeのインストール
-
root
ユーザーに切り替えるsudo su -
-
Docker Composeをインストール
curl -L https://github.com/docker/compose/releases/download/v2.35.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
-
バイナリに実行権限を追加
chmod +x /usr/local/bin/docker-compose
-
ec2-user
ユーザーにもどるexit
-
docker-composeが利用可能であることを確認
- バージョンが表示されれば、正常にインストールされています
docker-compose --version
4. NetBoxの構築
-
gitをインストール
sudo yum -y install git
-
NetBox用のDocker構成ファイルをクローン
- 2025年4月時点で最新のタグ
3.2.0
をクローンします - また新しいバージョンが出ていた場合は手順が変更になっている可能性があるので注意してください
git clone -b 3.2.0 https://github.com/netbox-community/netbox-docker.git
- 2025年4月時点で最新のタグ
-
クローンしたリポジトリに移動
cd netbox-docker
-
構築用のファイルを作成
tee docker-compose.override.yml <<EOF version: "3.9" services: netbox: ports: - 8000:8080 EOF
-
コンテナイメージのpull
docker-compose pull
-
コンテナを起動
-
コマンド
docker-compose up -d
-
失敗例
- 以下のようなログが出たら、
docker-compose up -d --force-recreate
コマンドでやり直し(連続で2-3回失敗することがある)
dependency failed to start: container netbox-docker-netbox-1 is unhealthy
- 以下のようなログが出たら、
-
-
StateがUpであることを確認
-
コマンド
docker-compose ps
-
結果
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS netbox-docker-netbox-1 docker.io/netboxcommunity/netbox:v4.2-3.2.0 "/usr/bin/tini -- /o…" netbox About a minute ago Up About a minute (healthy) 0.0.0.0:8000->8080/tcp, [::]:8000->8080/tcp netbox-docker-netbox-housekeeping-1 docker.io/netboxcommunity/netbox:v4.2-3.2.0 "/usr/bin/tini -- /o…" netbox-housekeeping About a minute ago Up About a minute (healthy) netbox-docker-netbox-worker-1 docker.io/netboxcommunity/netbox:v4.2-3.2.0 "/usr/bin/tini -- /o…" netbox-worker About a minute ago Up About a minute (healthy) netbox-docker-postgres-1 docker.io/postgres:17-alpine "docker-entrypoint.s…" postgres About a minute ago Up About a minute (healthy) 5432/tcp netbox-docker-redis-1 docker.io/valkey/valkey:8.0-alpine "docker-entrypoint.s…" redis About a minute ago Up About a minute (healthy) 6379/tcp netbox-docker-redis-cache-1 docker.io/valkey/valkey:8.0-alpine "docker-entrypoint.s…" redis-cache About a minute ago Up About a minute (healthy) 6379/tcp
-
-
管理者ユーザーを作成する
docker-compose exec netbox /opt/netbox/netbox/manage.py createsuperuser
5. NetBoxへのログイン
-
NetBoxにアクセスする
http://<global_ip>:8000
-
ログイン画面が表示され、作成した管理者ユーザーでログインできれば構築完了
さいごに
NetBoxのコンテナを簡単に構築可能なのは大変ありがたいです。次回以降の記事では、
実際のNetBox操作や、Ansibleを使った自動化も今後試していきたいと思います。
参考URL
- VS Code関連
- Docker Compose関連
- Netbox関連