2022-01-30 PiKVM 導入

提供:hkatou_Lab

2021/12 に PiKVM を導入した記録。

目的

IPMI も vPro も無い NUC を、遠隔から ESXi インストールができるようにしたい。

できること

  • PC / iPad などのブラウザから、遠隔地の PC やサーバを IP 経由でコントロールできる
    • HDMI 出力・キーボード・マウス接続を、Web ブラウザからコントロール
    • 市販の HDMI エクステンダでは、HDMI --- LAN --- HDMI のため手軽さが無い
    • 市販の HDMI + KVM スイッチは、非常に高価
  • USB 経由で ISO をマウントし、OS をインストールできる
    • インターネット経由だと転送が遅いため、PiKVM がある場所に Windows VM + NAS があると速い
  • Read-Only ファイルシステムのカスタム Arch Linux で動作し、SD カードの書き換え限界を回避
    • カスタム Arch Linux の GUI の出来が非常に良い
  • ATX 電源であれば、電源 off / on も可能
    • hkatou Lab はインテリジェント PDU で off / on しているため、未使用
  • Tailscale VPN で外部アクセス不可な NAT 配下の環境でも、外部からアクセスが可能

できないこと

  • IPMI とは違い、対象機器の CPU 温度などはモニタできない
  • リアルタイム性はそれなりで、~100ms 程度の遅延がある

コスト

全体コスト
構成 品名 購入先 価格 個数 備考
PiKVM Raspberry Pi4 Model B 4GB スイッチサイエンス \7,700 1 本体
Pi4 用 AC アダプタ Amazon.co.jp \1,139 1
PiKVM v3 HAT + Steel Case kickstarter \20,125 1 Pi4 にかぶせる HAT とケース
HDMI ケーブル \0 1 そのへんにあった短いやつ
小計 \28,964
オプション ezcoo HDMI KVM Switch Amazon.com \15,374 1 HDMI と USB3.0 の KVM スイッチ
USB 3.0 A-Aオスケーブル 0.5M x2 Amazon.co.jp \1,199 1 A-A で非常に珍しいもの 2 個入
Micro <-> A USBケーブル 0.3m \698 1 PiKVM -> ezcoo コントロール用
HDMI(オス)to mini HDMI(オス)

ケーブル 0.5m

\699 2 NUC の mini HDMI <-> ezcoo 間
小計 \17,970
合計 \47,633

PiKVM と ezcoo はドル決済のため、$1 = 115 円で計算


市販の HDMI KVM エクステンダは 10 万円くらい、IP-KVM エクステンダは 20 万円くらいする (しかも 1 ポート) ため、

吊るしで買う機器よりは安いです。

全体構成

 
PiKVM+ezcoo

PiKVM と ezcoo HDMI KVM スイッチは、以下で接続します。

  • 左下 : ezcoo コントロール用 Micro USB
  • 中央 : KVM 用 USB-A - C + HDMI
  • 右上 : USB A-to-A x2 + HDMI-to-mini-HDMI x2
    • ↑はわかりにくい写真ですが、KVM 用ケーブルなので PiKVM 本体とは接続されてません ↓ の写真を参照
 
PiKVM+ezcoo2

ezcoo の右上にマウスとキーボードを別々に接続する USB ポートがありますが、PiKVM は兼用のため、この画像の背面側に接続します。

PiKVM

 
2021/12/11 に届いたときの初期導入時

左上から

  • PiKVM v3 HAT
  • PiKVM スチールケース
  • HDMI - mini HDMI ケーブル
  • USB A - Micro USB ケーブル
  • Raspberry Pi4
  • Pi4 AC アダプタ
 
PiKVM スチールケースの中身

FAN や有機 EL ステータス表示液晶などが入っています。


ピンアサイン含め、内容物は公式が詳しいので、そちらで。

https://pikvm.org/

https://www.kickstarter.com/projects/mdevaev/pikvm-v3-hat/description


組み立て手順

細かい組み立て手順は、公式 Youtube憧れのKVM over IPを手軽?に導入 を参考にさせてもらいました。

初期設定

First steps を見てやれば OK.

最低限 SSH CLI パスワードと、https GUI パスワードを設定します。

ezcoo HDMI KVM スイッチ

デフォルトだと 1 台のみコントロールできる、PiKVM を 4 台対応にできる HDMI+KVM スイッチ。

日本では出回っていないため、US の Amazon.com から購入しました。

 
ezcoo_01
 
ezcoo_02
 
ezcoo_03
 
ezcoo_04
 
ezcoo_05

ezcoo HDMI+KVM スイッチ用の PiKVM 設定追加

以下を見て設定します。

私の設定は以下です。

[root@pikvm ~]# cat /etc/kvmd/override.yaml
####################################################################
#                                                                  #
# Override Pi-KVM system settings. This file uses the YAML syntax. #
#                                                                  #
#    https://github.com/pikvm/pikvm/blob/master/pages/config.md    #
#                                                                  #
# All overridden parameters will be applied AFTER other configs    #
# and "!include" directives and BEFORE validation.                 #
# Not: Sections should be combined under shared keys.              #
#                                                                  #
####################################################################
#
#########
# Wrong #
#########
#kvmd:
#    gpio:
#        drivers: ...
#kvmd:
#    gpio:
#        scheme: ...
#
###########
# Correct #
###########
#kvmd:
#    gpio:
#        drivers: ...
#        scheme: ...
#
###########
# Example #
###########
#vnc:
#    # See https://github.com/pikvm/pikvm/blob/master/pages/vnc.md
#    keymap: /usr/share/kvmd/keymaps/ru # Set russian keymap
#    auth:
#        vncauth:
#            enabled: true # Enable auth via /etc/kvmd/vncpasswd
kvmd:
    gpio:
        drivers:
            ez:
                type: ezcoo
                protocol: 2
                device: /dev/ttyUSB0
            wol_server1:
                type: wol
                mac: 00:00:00:00:00:201
                ip: 192.0.2.1
                port: 9
            wol_server2:
                type: wol
                mac: 00:00:00:00:00:02
                ip: 192.0.2.2
                port: 9
        scheme:
            ch0_led:
                driver: ez
                pin: 0
                mode: input
            ch1_led:
                driver: ez
                pin: 1
                mode: input
            ch2_led:
                driver: ez
                pin: 2
                mode: input
            ch3_led:
                driver: ez
                pin: 3
                mode: input
            ch0_button:
                driver: ez
                pin: 0
                mode: output
                switch: false
            ch1_button:
                driver: ez
                pin: 1
                mode: output
                switch: false
            ch2_button:
                driver: ez
                pin: 2
                mode: output
                switch: false
            ch3_button:
                driver: ez
                pin: 3
                mode: output
                switch: false
            wol_server1:
                driver: wol_server1
                pin: 0
                mode: output
                switch: false
            wol_server2:
                driver: wol_server2
                pin: 0
                mode: output
                switch: false
        view:
            table:
                - ["#Input 1", ch0_led, ch0_button]
                - ["#Server 1", "wol_server1|Send Wake-on-LAN"]
                - ["#Input 2", ch1_led, ch1_button]
                - ["#Server 2", "wol_server2|Send Wake-on-LAN"]
                - ["#Input 3", ch2_led, ch2_button]
                - ["#Input 4", ch3_led, ch3_button]

kvmd: 配下を追加します。MAC アドレスと IP アドレスは、環境に合わせて書き換えが必要です。

 
PiKVM ezcoo gui

yaml の設定・サービス再起動がうまく行っていれば、上記の表示になり、以下が可能です。

  • Click ボタンをクリックすると、PiKVM から ezcoo のポートを切り替え可能
  • Send Wake-on-LAN をクリックすると、指定した MAC アドレスに WoL を送信、電源 On

神だ・・・

TailScale VPN による VPN アクセス

Tailscale VPN を見て設定。あとはコントロール元の Windows PC にもインストールすれば、

100.64.0.0/10 のインターフェース経由でリモートアクセスが可能になります。

仕組みはここの記事[1]が詳しいです。

外部リンク

PiKVM Handbook

憧れのKVM over IPを手軽?に導入

100台まで無料のVPNサービス「tailscale」、リンクだけでマシンのシェアも可能!?

  1. 100台まで無料のVPNサービス「tailscale」、リンクだけでマシンのシェアも可能!? https://internet.watch.impress.co.jp/docs/column/shimizu/1303751.html