Podman で NetBox を動かすための構成メモです。NetBox は PostgreSQL、Redis、Redis Cache、NetBox 本体を組み合わせるため、単体コンテナではなく Pod 単位で整理すると見通しがよくなります。
この記事の位置づけ
Podman 上で NetBox を構築する記事です。インフラ管理アプリケーションをコンテナで動かす検証として、phpIPAM 記事と並べて扱います。
NetBox を Podman で動かす位置づけ
NetBox は PostgreSQL、Redis、アプリケーション本体を組み合わせて動くため、Podman の pod 構成を試す題材として扱いやすいアプリケーションです。この記事では、本格運用の HA 構成ではなく、検証用に各コンポーネントの関係を確認することを重視します。
本番運用では、永続データ、バックアップ、アップグレード手順、外部リバースプロキシ、TLS、メール送信を別途設計します。
次に読む記事
参考
書籍
書籍
参考書籍
Kubernetes完全ガイド 第2版
Kubernetes の仕組み、リソース、ネットワーク、運用観点を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
構成
| 要素 | 役割 |
| PostgreSQL | NetBox のデータベース |
| Redis | タスクキューなどで使用 |
| Redis Cache | キャッシュ用途 |
| NetBox | アプリケーション本体 |
作業ディレクトリ
sudo mkdir -p /opt/container/netbox/{postgresql,redis,redis-cache,netbox}
sudo chown -R $USER:$USER /opt/container/netboxPod の作成
podman pod create \
--name netbox-pod \
-p 8000:8080PostgreSQL
podman run -d --pod netbox-pod \
--name netbox-postgres \
-e POSTGRES_DB=netbox \
-e POSTGRES_USER=netbox \
-e POSTGRES_PASSWORD='change-me' \
-v /opt/container/netbox/postgresql:/var/lib/postgresql/data:Z \
docker.io/library/postgres:15Redis
podman run -d --pod netbox-pod \
--name netbox-redis \
docker.io/library/redis:7-alpine
podman run -d --pod netbox-pod \
--name netbox-redis-cache \
docker.io/library/redis:7-alpineNetBox 本体
実際の運用では環境変数や secret を分離します。以下は構成要素の関係を確認するための最小イメージです。
podman run -d --pod netbox-pod \
--name netbox \
-e DB_HOST=127.0.0.1 \
-e DB_NAME=netbox \
-e DB_USER=netbox \
-e DB_PASSWORD='change-me' \
-e REDIS_HOST=127.0.0.1 \
-e REDIS_CACHE_HOST=127.0.0.1 \
docker.io/netboxcommunity/netbox:latest確認
podman pod ps
podman ps --pod
curl -I http://127.0.0.1:8000/まとめ
NetBox は依存サービスが多いため、Podman で扱う場合は「1 Pod 内に関連コンテナをまとめる」と理解しやすくなります。本番運用では永続化、バックアップ、secret 管理、リバースプロキシ、アップデート手順を別途設計します。
Ubuntu 22.04 Podman で NetBox を構築する



