GoogleSpreadSheetで管理していたIPアドレス台帳が、機器の増加に伴って追いつかなくなってきた。
実際に使われているIPアドレスとシートの記載がずれることが増え、手作業での棚卸しにも限界を感じていたので、phpIPAMをDockerで起動してIP管理を移すことにした。
Dockerで起動する
docker-compose.yml は次の内容にした。
version: '3.7'
services:
phpipam-web:
image: phpipam/phpipam-www:latest
ports:
- "8054:80"
environment:
- TZ=Asia/Tokyo
- IPAM_DATABASE_HOST=phpipam-mariadb
- IPAM_DATABASE_PASS=my_secret_phpipam_pass
- IPAM_DATABASE_WEBHOST=%
# - IPAM_DISABLE_INSTALLER=1
restart: unless-stopped
volumes:
- phpipam-logo:/phpipam/css/images/logo
depends_on:
- phpipam-mariadb
phpipam-cron:
image: phpipam/phpipam-cron:latest
environment:
- TZ=Asia/Tokyo
- IPAM_DATABASE_HOST=phpipam-mariadb
- IPAM_DATABASE_PASS=my_secret_phpipam_pass
- SCAN_INTERVAL=1h
restart: unless-stopped
depends_on:
- phpipam-mariadb
phpipam-mariadb:
image: mariadb:latest
environment:
- MYSQL_ROOT_PASSWORD=my_secret_mysql_root_pass
restart: unless-stopped
volumes:
- phpipam-db-data:/var/lib/mysql
volumes:
phpipam-db-data:
phpipam-logo:LAN内でしか使わない前提なので、http接続のままにした。
ポート番号は8054にした。
インストール
docker compose up -d で起動した後、http://<ip>:8054 にアクセスするとインストーラーが立ち上がる。
- install時は
root/my_secret_phpipam_pass(IPAM_DATABASE_PASSに指定した値)でログインする - DBの設定はAutoを選ぶ
- Site URLは
http://<ip>:8054を入力する
インストールが無事完了したら、docker-compose.yml の IPAM_DISABLE_INSTALLER=1 の行をコメントアウトから戻して有効にし、コンテナを再起動しておく。インストーラーを開いたままにしておくと不要にアクセスできてしまうので、済んだら閉じておく。
設定
phpIPAMサーバ設定
管理画面のサーバ設定で、以下を変更した。
| 項目 | 設定値 |
|---|---|
| Site Domain | domain.local から自分のドメインに変更 |
| Default Language | Japanese |
| Admin mail | 管理者のメールアドレス |
| DNSサーバー | 自DNS設定(Pi-hole)を指定 |
My Account
サーバ設定とは別に、自分のアカウント設定側でもDefault LanguageをJapaneseに変更する必要がある。システム全体の言語設定とは独立した項目なので、ここを見落とすと自分だけ英語表示のままになる。
サブネット管理
Customers のセクションからサブネットを追加した。
| 項目 | 設定値 |
|---|---|
| サブネット | 192.168.1.0/24 |
| ホストの状態 | Yes |
| 新ホスト発見 | Yes |
利用手順
追加したサブネットに対してスキャンを実行すると、実際に使用中のIPアドレスが検知され、自動で登録される。
あとは登録されたIPアドレスごとに、用途やホスト名などの詳細を記録していけばよい。
複数のIPアドレスをまとめて編集したい場合は、管理画面の「インポート/エクスポート」からエクスポートする。データセットを「IPアドレス」にし、エクスポートしたい項目にチェックを入れると、エクセルなどの表計算ソフトで編集できる形式で書き出せる。編集後はCSVで保存し、同じ画面からインポートすれば反映される。
まとめ
GoogleSpreadSheetでの手作業管理から、phpIPAMのDocker構築へ移行した。
サブネットを登録してスキャンを回すだけで使用中のIPアドレスが自動検知されるので、台帳とのずれを気にする手間が減った。一括編集もCSVのインポート/エクスポートで済むので、既存のシートからの移行もそれほど手間にはならなかった。