「2022-01-30 PiKVM 導入」の版間の差分

提供:hkatou_Lab
ナビゲーションに移動 検索に移動
編集の要約なし
編集の要約なし
 
(同じ利用者による、間の4版が非表示)
2行目: 2行目:


== 目的 ==
== 目的 ==
IPMI も vPro も無い [https://pc.watch.impress.co.jp/docs/column/nishikawa/626599.html NUC] を、遠隔から ESXi インストールしたかった。
IPMI も vPro も無い [https://pc.watch.impress.co.jp/docs/column/nishikawa/626599.html NUC] を、遠隔から ESXi インストールができるようにしたい。


== できること ==
== できること ==


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


== できないこと ==
== できないこと ==


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


== コスト ==
== コスト ==
{| class="wikitable"
{| class="wikitable"
|+全体コスト
|+全体コスト
!
!構成
!品名
!購入先
!購入先
!価格
!価格
27行目: 33行目:
!備考
!備考
|-
|-
|Raspberry Pi4
| rowspan="4" |PiKVM
|Raspberry Pi4 Model B 4GB
|スイッチサイエンス
|スイッチサイエンス
|\7,700
|\7,700
51行目: 58行目:
|そのへんにあった短いやつ
|そのへんにあった短いやつ
|-
|-
|小計
|
|
|\28,964
|
|
|-
| rowspan="4" |オプション
|ezcoo HDMI KVM Switch
|ezcoo HDMI KVM Switch
|Amazon.com
|Amazon.com
73行目: 88行目:
|2
|2
|NUC の mini HDMI <-> ezcoo 間
|NUC の mini HDMI <-> ezcoo 間
|-
|小計
|
|
|\17,970
|
|
|-
|-
|合計
|合計
|
|
|
|\47,633
|\47,633
82行目: 105行目:
PiKVM と ezcoo はドル決済のため、$1 = 115 円で計算
PiKVM と ezcoo はドル決済のため、$1 = 115 円で計算


== 構成 ==
 
市販の HDMI KVM エクステンダは 10 万円くらい、IP-KVM エクステンダは 20 万円くらいする (しかも 1 ポート) ため、
 
吊るしで買う機器よりは安いです。
 
== 全体構成 ==
[[ファイル:PiKVM+ezcoo.jpg|代替文=PiKVM+ezcoo|なし|フレーム|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.jpg|代替文=PiKVM+ezcoo2|なし|フレーム|PiKVM+ezcoo2]]
ezcoo の右上にマウスとキーボードを別々に接続する USB ポートがありますが、PiKVM は兼用のため、この画像の背面側に接続します。


== PiKVM ==
== PiKVM ==
104行目: 142行目:


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


== 組み立て手順 ==
== 組み立て手順 ==
細かい組み立て手順は、[https://www.youtube.com/watch?v=dTchVKxx7Fo&feature=youtu.be 公式 Youtube] と [https://zigsow.jp/item/361953/review/372633 憧れのKVM over IPを手軽?に導入] を参考にさせてもらいました。
細かい組み立て手順は、[https://www.youtube.com/watch?v=dTchVKxx7Fo&feature=youtu.be 公式 Youtube] と [https://zigsow.jp/item/361953/review/372633 憧れのKVM over IPを手軽?に導入] を参考にさせてもらいました。
== 初期設定 ==
[https://docs.pikvm.org/first_steps/ First steps] を見てやれば OK.
最低限 SSH CLI パスワードと、https GUI パスワードを設定します。


== ezcoo HDMI KVM スイッチ ==
== ezcoo HDMI KVM スイッチ ==


デフォルトだと 1 台のみコントロールできる、PiKVM を 4 台対応にできる HDMI+KVM スイッチ。
日本では出回っていないため、US の Amazon.com から購入しました。
[[ファイル:Ezcoo 01.jpg|代替文=ezcoo_01|なし|フレーム|ezcoo_01]]
[[ファイル:Ezcoo 02.jpg|代替文=ezcoo_02|なし|フレーム|ezcoo_02]]
[[ファイル:Ezcoo 03.jpg|代替文=ezcoo_03|なし|フレーム|ezcoo_03]]
[[ファイル:Ezcoo 04.jpg|代替文=ezcoo_04|なし|フレーム|ezcoo_04]]
[[ファイル:Ezcoo 05.jpg|代替文=ezcoo_05|なし|フレーム|ezcoo_05]]
== ezcoo HDMI+KVM スイッチ用の PiKVM 設定追加 ==
以下を見て設定します。
* [https://docs.pikvm.org/ezcoo/ ezCoo managed multiport KVM switch]
* [https://docs.pikvm.org/gpio/?h=wol#raspberrys-gpio Wake-on-LAN]
私の設定は以下です。<syntaxhighlight lang="diff">
[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]
</syntaxhighlight>
kvmd: 配下を追加します。MAC アドレスと IP アドレスは、環境に合わせて書き換えが必要です。
[[ファイル:PiKVM ezcoo gui.jpg|代替文=PiKVM ezcoo gui|なし|フレーム|PiKVM ezcoo gui]]
yaml の設定・サービス再起動がうまく行っていれば、上記の表示になり、以下が可能です。
* Click ボタンをクリックすると、PiKVM から ezcoo のポートを切り替え可能
* Send Wake-on-LAN をクリックすると、指定した MAC アドレスに WoL を送信、電源 On
神だ・・・


== TailScale VPN による VPN アクセス ==
== TailScale VPN による VPN アクセス ==
[https://docs.pikvm.org/tailscale/#for-each-device-you-wish-to-access-pikvm Tailscale VPN] を見て設定。あとはコントロール元の Windows PC にもインストールすれば、
100.64.0.0/10 のインターフェース経由でリモートアクセスが可能になります。
仕組みはここの記事<ref>100台まで無料のVPNサービス「tailscale」、リンクだけでマシンのシェアも可能!? https://internet.watch.impress.co.jp/docs/column/shimizu/1303751.html</ref>が詳しいです。
== 外部リンク ==
[https://docs.pikvm.org/v3/ PiKVM Handbook]
* [https://docs.pikvm.org/ezcoo/ ezCoo managed multiport KVM switch]
* [https://docs.pikvm.org/tailscale/#for-each-device-you-wish-to-access-pikvm Tailscale VPN]
[https://zigsow.jp/item/361953/review/372633 憧れのKVM over IPを手軽?に導入]
[https://internet.watch.impress.co.jp/docs/column/shimizu/1303751.html 100台まで無料のVPNサービス「tailscale」、リンクだけでマシンのシェアも可能!?]
<references />
[[カテゴリ:ラボ]]

2022年2月5日 (土) 07:40時点における最新版

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

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
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 スチールケースの中身
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_01
ezcoo_02
ezcoo_02
ezcoo_03
ezcoo_03
ezcoo_04
ezcoo_04
ezcoo_05
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
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