自宅や実家に設置しているサーバでトラブルが起きた際、今まではモバイルモニターとキーボードを繋げて何とかしていました。
ただ、サーバは普段ラック内に置いていますし何より、実家に置いているサーバで何か問題が起きると、現地に行かないといけないのが辛いところ。
この問題を解決すべく、IP-KVMを導入するかぁ・・・でも高いしなぁ・・・と考えていたのですが、Raspberry Piを使ったPiKVMが良さそう、という話を耳にしました。
ただ、現在においてRaspberry Pi自体非常に手に入れづらい物になっており、Raspberry Piを使うことを前提としたソフトウェアは非常に重たい物です。
とはいえLinuxが動くSBC(Single Board Computer)さえあれば何とかなるだろう、とも思っていたのでもう少し調べてみると、Orange Pi やNano Piでも動くPiKVM OSが公開されていました。
今回は、このリポジトリにあるOSイメージをOrange Pi Zero LTSに導入し、PiKVM環境を構築してみることにしました。
目次
必要な物
PiKVM環境を組み上げるのに必要な物は以下の通り。
必要な物 | 購入先(アフィリエイト広告リンクを含みます) | 価格(送料含まず) |
Orange Pi Zero LTS | AliExpress | 2,934円 |
MicroSDカード 16GB以上 | Amazon.co.jp | 550円 |
GROOVY グルービー GM-UH016Y [Y字型microUSBケーブル] | ヨドバシカメラ | 360円 |
六角柱 6角スペーサー | Amazon.co.jp | 890円 |
HDMIキャプチャボード | Amazon.co.jp | 1,598円 |
HDMIケーブル(無ければ) | Amazon.co.jp | 600円 |
LANケーブル(無ければ) | Amazon.co.jp | 792円 |
アクリル板(加工含め) | アクリルオンライン | 1,243円 |
合計 | 8,967円 |
Orange Pi Zero LTS
Orange Pi Zero LTSはOrange Piシリーズの中でも非常に小型なモデルです。
AliExpressで2,934円程度で売られており、入手性が非常に良いのが高ポイント。
Orange Pi Zero LTSに搭載されているWi-Fiモジュールは、技適をクリアしていないため有線のみで利用します。
Orange Pi Zero LTSのケース問題
Orange Pi Zero LTSですが、Raspberry Piと違ってあまり良さげなケースが用意されていなかったため、今回は自分で作ることにしました。
後から気付いたのですが、普通に公式のケース売っていました・・・
2台目組んだときにケースと一緒に買いました
Orange Pi Zero LTSの図面が公式サイトに公開されていたので、アクリル板と六角柱、六角スペーサーを組み合わせてみます。
広告リンク
アクリル板の加工については、幅48mmの高さ46mmの四角形をベースに、四隅からそれぞれ縦横3mmの位置に直径5mmの穴を空け、最後に四隅をR2で丸めます。
流石に自宅にレーザーカッターなどは置いていないので、アクリルオンラインさんに加工を依頼しました。
アクリル板(押出) オーダーカットから、下記の通り指定して注文すれば写真と同じ物が作れます。
項目 | 内容 |
色 | 透明(P) |
厚み | 3mm |
W | 48mm |
H | 46mm |
端面仕上げ | 磨き |
角R | 半径 A:2mm B:2mm C:2mm D:2mm |
穴あけ1 | 丸穴 ABCD 直径5 X:3mm Y:3mm |
あとは六角スペーサーと六角柱を組み合わせて良さげな形に仕上げ、邪魔なWi-Fiアンテナは引っこ抜きます。
写真にあるOrange Pi Zero LTSは、拡張インターフェースボードも載せているのですが、PiKVMとして利用するなら不要です。(勘違いして必要と思い、買っちゃいました・・・)
PiKVMセットアップ
Orange Pi Zero LTSの準備ができたら、下記リポジトリのReleasesにアクセスし、最新のVer(記事執筆時点ではv2020.12.19)→Show all 16 assetsの順にクリックし、「v2-hdmiusb-generic-arm-orangepi-zero.img.bz2」をダウンロードします。
ダウンロードしてきたbz2アーカイブを展開すると、「v2-hdmiusb-generic-aarch64-orangepi-zero-plus.img」が展開されるので、Win32 Disk Imagerを使ってmicroSDにイメージを書き込みます。
PiKVM初期設定
Orange Pi LTSに、OSイメージを書き込んだmicroSDとLANケーブルを刺した上でmicroUSBケーブルにOTGケーブルを刺し、適当な電源アダプタもしくはPCに接続して起動します。
DHCPでIPアドレスが払い出されるので、ルーターなどからpikvmに払い出されているIPアドレスを特定し、SSHでPiKVMに接続します。
デフォルトIDとパスワードはroot/rootです。
PiKVMは/がRead Onlyでマウントされた状態で起動するので、下記コマンドを実行して/を再マウントします。
mount -o remount,rw /
続いて、rootのパスワードを下記コマンドで変更します。
passwd
あわせて、PiKVM管理画面のパスワードも下記コマンドで変更しておきます。
kvmd-htpasswd set admin
systemctl restart kvmd kvmd-nginx
続いて、pacmanのmirrolistが古いためかpacman -Syuを実行すると、404エラーが返ってくるのでpacmanのmirrorlistを下記コマンドで編集します。
vi /etc/pacman.d/mirrorlist
mirrorlistは下記の通り編集して保存します。
#Server = http://il.us.mirror.archlinuxarm.org/$arch/$repo
Server = http://jp.mirror.archlinuxarm.org/$arch/$repo
mDNSの有効化
今回、PiKVMは持ち運べるIP-KVMとして想定して組んでいるため、毎回払い出されたIPアドレスをルーターで確認するのは非常に面倒です。
そこで、mDNSを使える様にして「pikvm.local」で名前解決できるようにします。
PiKVMはarchlinuxがベースですので、下記コマンドでabahiとnss-mdnsをインストールし、サービスを有効化します。
pacman -S avahi nss-mdns
systemctl enable avahi-daemon.service
ここまでできれば準備完了です。
利用するまでの間いったんshutdown nowでシャットダウンしておきます。
PiKVMでサーバを操作する
Orange Pi LTSのUSB Type-A端子に、HDMIキャプチャボードを接続し、HDMIケーブルでサーバと接続した後、LANケーブルを接続します。
その後、Y字型microUSBケーブルのmicroUSB側をOrange Pi LTSのmicroUSBポート、残りのUSB Type-Aケーブル2つをサーバに接続します。
すると、Orange Pi LTSに電力が供給され起動するので、ブラウザで「https://pikvm.local」へアクセスします。
ログイン画面が表示されるので、IDに「admin」、パスワードにはkvmd-htpasswd set adminで変更したパスワードを入力してログインすると、上図の様なPiKVMのWEBコンソールが表示されるので、「KVM」をクリックします。
すると、上図の通りブラウザ上にサーバの画面出力内容が表示されます。
もちろん、キーボード入力もOK。なんともあっさりとIP-KVM環境が構築できました。
更に、Y字ケーブルを別のPCやUSBアダプタに繋げてあげる必要があるものの(Orange Pi LTSへの電源供給が必要なため)、上図の通りBIOS画面もPiKVM経由で操作できちゃいます。
更に更に、事前にISOイメージをOrange Pi Zero LTS側にアップロードしておく必要がありますが、Virtual Media機能もあるので、PiKVMを入れたOrange Pi Zero LTSを用意しておけば、PCやサーバのセットアップができちゃうのも魅力的ですね。
安いUSBタイプのHDMIキャプチャボードを利用しているので、GUI操作などはどうしても遅延が発生しますが、トラブルシューティング位であればこれで十分です。
まとめ
本来であればIP-KVMを利用しようとするとかなりの出費が必要なのですが、PiKVMを使えばビックリするくらい安くでIP-KVM環境を構築できるのはありがたい話です。
もちろん、ハードウェアの信頼性を見ると比べものにならないものの、物自体が安いので故障したら丸っと交換、でも全く問題無さそう。
Raspberry Piであれば、無線モジュールが技適をパスしているのでWi-Fi経由でPiKVMを利用できるのでより便利かなという感じ。
ただ、正規価格で中々揃えられないことを考えると、有線LANのみという制限は受ける物のOrange Pi Zero LTSで組むのが今はベターかもですね。