「2022-01-30 PiKVM 導入」の版間の差分
(ページの作成:「2021/12 に [https://pikvm.org/ PiKVM] を導入した記録。 == 目的 == IPMI も vPro も無い [https://pc.watch.impress.co.jp/docs/column/nishikawa/626599.html NU…」) |
|||
(同じ利用者による、間の5版が非表示) | |||
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 | + | ** インターネット経由だと転送が遅いため、PiKVM がある場所に Windows VM + NAS があると速い |
− | * ATX 電源であれば、電源 off / on も可能 | + | * Read-Only ファイルシステムのカスタム Arch Linux で動作し、SD カードの書き換え限界を回避 |
+ | ** カスタム Arch Linux の GUI の出来が非常に良い | ||
+ | * ATX 電源であれば、電源 off / on も可能 | ||
+ | ** hkatou Lab はインテリジェント PDU で off / on しているため、未使用 | ||
+ | * Tailscale VPN で外部アクセス不可な NAT 配下の環境でも、外部からアクセスが可能 | ||
== できないこと == | == できないこと == | ||
− | * CPU 温度などはモニタできない | + | * IPMI とは違い、対象機器の CPU 温度などはモニタできない |
− | * | + | * リアルタイム性はそれなりで、~100ms 程度の遅延がある |
== コスト == | == コスト == | ||
{| class="wikitable" | {| class="wikitable" | ||
|+全体コスト | |+全体コスト | ||
− | ! | + | !構成 |
+ | !品名 | ||
!購入先 | !購入先 | ||
!価格 | !価格 | ||
26行目: | 33行目: | ||
!備考 | !備考 | ||
|- | |- | ||
− | |Raspberry Pi4 | + | | rowspan="4" |PiKVM |
+ | |Raspberry Pi4 Model B 4GB | ||
|スイッチサイエンス | |スイッチサイエンス | ||
|\7,700 | |\7,700 | ||
50行目: | 58行目: | ||
|そのへんにあった短いやつ | |そのへんにあった短いやつ | ||
|- | |- | ||
+ | |小計 | ||
+ | | | ||
+ | | | ||
+ | |\28,964 | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | | rowspan="4" |オプション | ||
|ezcoo HDMI KVM Switch | |ezcoo HDMI KVM Switch | ||
|Amazon.com | |Amazon.com | ||
72行目: | 88行目: | ||
|2 | |2 | ||
|NUC の mini HDMI <-> ezcoo 間 | |NUC の mini HDMI <-> ezcoo 間 | ||
+ | |- | ||
+ | |小計 | ||
+ | | | ||
+ | | | ||
+ | |\17,970 | ||
+ | | | ||
+ | | | ||
|- | |- | ||
|合計 | |合計 | ||
+ | | | ||
| | | | ||
|\47,633 | |\47,633 | ||
81行目: | 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 など.jpg|なし|フレーム|2021/12/11 に届いたときの初期導入時]] | ||
+ | 左上から | ||
+ | |||
+ | * PiKVM v3 HAT | ||
+ | * PiKVM スチールケース | ||
+ | * HDMI - mini HDMI ケーブル | ||
+ | * USB A - Micro USB ケーブル | ||
+ | * Raspberry Pi4 | ||
+ | * Pi4 AC アダプタ | ||
+ | |||
+ | [[ファイル:PiKVM スチールケースの中身.jpg|代替文=PiKVM スチールケースの中身|なし|フレーム|PiKVM スチールケースの中身]] | ||
+ | FAN や有機 EL ステータス表示液晶などが入っています。 | ||
+ | |||
+ | |||
+ | ピンアサイン含め、内容物は公式が詳しいので、そちらで。 | ||
+ | |||
+ | https://pikvm.org/ | ||
+ | |||
+ | 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://docs.pikvm.org/first_steps/ First steps] を見てやれば OK. | ||
+ | |||
+ | 最低限 SSH CLI パスワードと、https GUI パスワードを設定します。 | ||
+ | |||
+ | == 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 アクセス == | ||
+ | [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 HDMI KVM スイッチは、以下で接続します。
- 左下 : ezcoo コントロール用 Micro USB
- 中央 : KVM 用 USB-A - C + HDMI
- 右上 : USB A-to-A x2 + HDMI-to-mini-HDMI x2
- ↑はわかりにくい写真ですが、KVM 用ケーブルなので PiKVM 本体とは接続されてません ↓ の写真を参照
ezcoo の右上にマウスとキーボードを別々に接続する USB ポートがありますが、PiKVM は兼用のため、この画像の背面側に接続します。
PiKVM
左上から
- PiKVM v3 HAT
- PiKVM スチールケース
- HDMI - mini HDMI ケーブル
- USB A - Micro USB ケーブル
- Raspberry Pi4
- Pi4 AC アダプタ
FAN や有機 EL ステータス表示液晶などが入っています。
ピンアサイン含め、内容物は公式が詳しいので、そちらで。
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 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 アドレスは、環境に合わせて書き換えが必要です。
yaml の設定・サービス再起動がうまく行っていれば、上記の表示になり、以下が可能です。
- Click ボタンをクリックすると、PiKVM から ezcoo のポートを切り替え可能
- Send Wake-on-LAN をクリックすると、指定した MAC アドレスに WoL を送信、電源 On
神だ・・・
TailScale VPN による VPN アクセス
Tailscale VPN を見て設定。あとはコントロール元の Windows PC にもインストールすれば、
100.64.0.0/10 のインターフェース経由でリモートアクセスが可能になります。
仕組みはここの記事[1]が詳しいです。
外部リンク
100台まで無料のVPNサービス「tailscale」、リンクだけでマシンのシェアも可能!?
- ↑ 100台まで無料のVPNサービス「tailscale」、リンクだけでマシンのシェアも可能!? https://internet.watch.impress.co.jp/docs/column/shimizu/1303751.html