「2022-01-30 PiKVM 導入」の版間の差分
編集の要約なし |
|||
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 があると速い | ||
* Read-Only ファイルシステムのカスタム Arch Linux で動作し、SD カードの書き換え限界を回避 | |||
** カスタム Arch Linux の GUI の出来が非常に良い | |||
* ATX 電源であれば、電源 off / on も可能 (Lab はインテリジェント PDU で off / on している) | * ATX 電源であれば、電源 off / on も可能 (Lab はインテリジェント PDU で off / on している) | ||
* Tailscale VPN で外部アクセス不可な NAT 配下の環境でも、外部からアクセスが可能 | * Tailscale VPN で外部アクセス不可な NAT 配下の環境でも、外部からアクセスが可能 | ||
15行目: | 19行目: | ||
== できないこと == | == できないこと == | ||
* CPU 温度などはモニタできない | * IPMI とは違い、対象機器の CPU 温度などはモニタできない | ||
* | * リアルタイム性はそれなりで、~100ms 程度の遅延がある | ||
== コスト == | == コスト == | ||
{| class="wikitable" | {| class="wikitable" | ||
|+全体コスト | |+全体コスト | ||
! | !構成 | ||
!品名 | |||
!購入先 | !購入先 | ||
!価格 | !価格 | ||
27行目: | 32行目: | ||
!備考 | !備考 | ||
|- | |- | ||
| rowspan="4" |PiKVM | |||
|Raspberry Pi4 | |Raspberry Pi4 | ||
|スイッチサイエンス | |スイッチサイエンス | ||
51行目: | 57行目: | ||
|そのへんにあった短いやつ | |そのへんにあった短いやつ | ||
|- | |- | ||
|小計 | |||
| | |||
| | |||
|\28,964 | |||
| | |||
| | |||
|- | |||
| rowspan="4" |オプション | |||
|ezcoo HDMI KVM Switch | |ezcoo HDMI KVM Switch | ||
|Amazon.com | |Amazon.com | ||
73行目: | 87行目: | ||
|2 | |2 | ||
|NUC の mini HDMI <-> ezcoo 間 | |NUC の mini HDMI <-> ezcoo 間 | ||
|- | |||
|小計 | |||
| | |||
| | |||
|\17,970 | |||
| | |||
| | |||
|- | |- | ||
|合計 | |合計 | ||
| | |||
| | | | ||
|\47,633 | |\47,633 | ||
82行目: | 104行目: | ||
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行目: | 141行目: | ||
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」、リンクだけでマシンのシェアも可能!?] |
2022年1月30日 (日) 11:50時点における版
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 も可能 (Lab はインテリジェント PDU で off / on している)
- Tailscale VPN で外部アクセス不可な NAT 配下の環境でも、外部からアクセスが可能
できないこと
- IPMI とは違い、対象機器の CPU 温度などはモニタできない
- リアルタイム性はそれなりで、~100ms 程度の遅延がある
コスト
構成 | 品名 | 購入先 | 価格 | 個数 | 備考 |
---|---|---|---|---|---|
PiKVM | Raspberry Pi4 | スイッチサイエンス | \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