Ubuntu 14.04上でオープンソースのIPAM・DCIMツール『netbox』をDockerで動作させる

今まで、OpenDCIMDevice42RalphといったDCIMツールを触ってきたのだが、DegitalOceanから『netbox』というDCIMツールが出たようなので、ちょっと触ってみることにする。
ちゃんとOSにインストールするなら、こちらの公式ドキュメントを参考に行うといいだろうが、ちょっと面倒くさそうだ。
Dockerイメージもあるので、今回はお試しということもあってこちらを利用する(なので、前提として最新版(少なくとも、docker-composeのVersion2の記述方法に対応したバージョン)のDockerとdocker-composeがインストール済みとなってる必要がある)。また、Dockerの設定ファイルを見たところ、今時点では16.04には対応してなさそうなので、14.04を用いる。

Dockerおよびdocker-composeをインストールしたら、以下のコマンドで「netbox」のDockerイメージを起動させる。

git clone -b master https://github.com/digitalocean/netbox.git
cd netbox
sudo docker-compose up -d

Dockerでの起動が終了したら、「http://IPアドレス」でアクセスできる。
この状態だとログイン前のため、何も編集ができない(閲覧モードになる)。右上の「Log in」からログインできる。

ログイン用のデフォルトID/PWは「admin/admin」となっている。

ログイン後の画面がこちら。

「netbox」は、以下のような構成になっているようだ。

  • Organization
    • Sites … 地理的な場所(DCのある場所)
    • Tenants … そのSiteに紐づく客や部門など
  • DCIM
    • Racks … ラックの情報(Sitesがないと作れない)
    • Devices … ラックに搭載するデバイスの情報
  • IPAM
    • VRFs … VRFの情報
    • Aggregates … トップレベルIPの割り当て情報
    • Prefixes … IPv4/IPv6ネットワーク割り当て情報
    • IP Addresses … 各IPアドレスの管理情報
    • VLANs … 各VLANの管理情報
  • Circuits
    • Providers … インターネットプロバイダ情報
    • Circuits … インターネット接続情報?(インターネット速度など)
  • Secrets
    • Secrets … パスワードなどの機密情報(今時点でSSL経由の通信ないみたいだけど。まぁリバースプロキシをコンテナで動かさせたりすればいいだけだから…)

各機能(特にRackまわり)、なんとなく触ってみたので、スクリーンショットを貼っておく。

ラック。ラックに搭載する機器はデバイスタイプ(自分で設定する。サーバとかスイッチとか)ごとに色を変えられるので、閲覧性は悪くない。

各デバイスにはネットワークポートを設定でき、それぞれ対向先の機器についても定義できる。
(この辺はまだRalphにはついてないんだよなぁ…今年の10月から開発するって言ってたけど、どうなんだろう…)

各ネットワークポートの作成には正規表現を使えるので、スイッチの作成では結構楽。

シークレット機能が少し面白い。
登録時に鍵で暗号化しておき、自身のProfileで設定した鍵と一致した場合は中身を見れるようだ。
こんな機能があるのにSSL経由の通信じゃないのは残念だが、また改善されていくだろう。

DegitalOceanの作成したツールということもあり、結構期待してもよさそう。
まだDCIMを導入してないような環境であれば一考の価値はありそうだ。