1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

govcの小ネタ:ゲストOSへのキーボード入力を自動化する

Posted at

TL; DR

> govc vm.keystrokes -vm photon-ova -s 'echo \"hello, world!\"'
> govc vm.keystrokes -json -vm photon-ova -c KEY_ENTER

vm-keystrokes-result.png

はじめに

VMに対する作業で毎回Webコンソールをポチポチやるのにつらみを感じたので、govc を使って自動化してみました。

バージョン

  • vSphere: 7.0u3
  • govc: v0.29.0
  • ゲストOS: VMware Photon OS 4.0

govc vm.keystrokes

このコマンドを使うと、VMのゲストOSにキーボード入力を送信できます。

# ダブルクォーテーションはエスケープが必要
> govc vm.keystrokes -vm photon-ova -s 'echo \"hello, world!\"'
> govc vm.keystrokes -json -vm photon-ova -c KEY_ENTER

webコンソールで確認すると、コマンドが確かに実行されています。

vm-keystrokes-result.png

ご覧の通り送信方法は2種類あり、改行等特殊文字を送る必要がある場合は -c しか使えません。

オプション 内容
-s 文字列を直接指定
-c 文字列をアスキーコードorエイリアス1で指定

vmがパワーオフ状態等で文字入力できなかった場合はエラーが返ります。$? をチェックして後続処理を打ち切れば、スクリプトで複数行コマンドを流す際も安全です。

> govc vm.keystrokes -vm vm1 -c KEY_ENTER
govc.exe: ServerFaultCode: vim.fault.InvalidPowerState
> echo $?
False

おわりに

以上、ゲストOSへのキーボード入力を自動化する方法でした。
うまくスクリプトを組めば、ログインから初期設定まで一気通貫で自動化できそうです。

  1. エイリアス一覧は govc vm.keystrokes -h で確認できます(記事中の KEY_ENTER もエイリアスです)。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?