hgot07 Hotspot Blog

主に無線LANや認証連携などの技術についてまとめるブログです。ネコは見る専。

UniFi Network ApplicationをDockerコンテナで動かす

Ubiquiti無線LAN基地局を使うには、基地局と同じサブネットの上にコントローラが要ります。前回、VirtualBox上にUbuntu Serverの仮想マシン(VM)を作って、そこでコントローラを動かしてみました。

hgot07.hatenablog.com

VirtualBoxでも使えそうですが、UbuntuのOSインストールやら管理やらが必要になるので、その辺がちょっと面倒な感じです。

もしかしてopenSUSE上のDockerでもUbuntuが使えたりしない?
その上でUniFi Network Applicationも使えたりしない?

 

結論

  • DockerコンテナのUbuntuでは、UniFi Network Applicationのインストールがうまくいかず、そのままでは走らない。
  • UniFi Network Application のDockerイメージが配布されているので、それを使うのが簡単。

以上!

(例によって、ちょっと嵌まりましたorz )

 

DockerコンテナのUbuntuで試してみた (失敗)

openSUSE Leap 15.3のDockerでも、docker pull ubuntuしてみたら、あっさりUbuntuが動きました!

ということは、UniFi Network Applicationも行ける?

早速、下記サイトからパッケージをダウンロードして、apt install ./unifi_sysvinit_all.deb してみたものの、インストールがうまくいきません。

インストーラにsystemdを想定した処理が含まれているのですが、dockerコンテナの中ではスタートアップ周りがサポートされていないので、ずっこけてしまいます。

_(:3」∠)_

スタートアップスクリプトらしいものを手で叩いてみるのですが、エラーが出てしまい、動かすのは大変そうです。

というわけで、あっさり やめた!

 

Dockerイメージがあった

誰かDockerでUniFi controllerを動かしていないかなと検索してみたら、なんと linuxserver/unifi-controller という名のDockerイメージが配布されているじゃぁありませんか!

hub.docker.com

半信半疑ながらも、openSUSEの上でpullして実行してみました。

  # docker pull linuxserver/unifi-controller
  # docker run -it -h unifi linuxserver/unifi-controller bash

ps axで見ると、しばらくしてmongodやjavaが動き始めて、なんとなくうまくいっている予感がしてきました。

では、同じホストからアクセス。Dockerコンテナに割り振られたIPアドレスを調べてから、

  $ firefox https://172.17.0.2:8443

成功!

なお、最初にポート8080を使ってhttpでアクセスしてしまい、これでも初期設定画面は表示されたのですが、最終段階でクラウドの認証が通らない状態になって、しばらく悩みました。同じ現象に遭った人がちらほら。

httpsの8443番からアクセスしましょう。サーバ証明書の検証に失敗しますが、ここは強行するしかありません。

 

クラウド側からのアクセスを確認

ローカルでコントローラが立ち上がって、クラウドの認証も通ったら、クラウド側からアクセスできるかどうか確認します。https://unifi.ui.com/ からログインしてみると、例によってそこには見当たらないので、View Legacy Platform に進みます。

いました! (一番上の子)

UniFiコントローラ (クラウド)

 

LAUNCHからクラウド経由でもコントローラ画面を出してみましたが、少しWebRTCに引っかかりを感じるものの、なんとか動いているようです。

ネットワークの本設定はこれからなので、未確認で進行形です。
(基地局をつなぐには、dockerのネットワーク設定を変更して、コンテナを外に出してあげる必要があります)

 

ちなみに、このdockerイメージでは、コントローラのログが /var/log/unifi ではなく、/usr/lib/unifi/logs の下にありました。(ぁ、やっぱりSTUNが時々コケている……)

 

おわり

 

 

jp.store.ui.com