仮想マシンをコマンド操作で管理したいと思い、vim-cmdコマンドを実際に使ってみたのでどんな操作ができるのか簡単にまとめてみる。
前提条件
- ESXiに1台以上のVMが乗っていること
- TeratermやPutty等でESXiにSSH接続できること
※SSHでESXiに接続できない場合は、SSH接続が有効化していない可能性があるので下記の手順で設定変更を行う。
vSphere Web Clientからの変更法
①対象VMが乗っているESXiを選択する
②構成タブ→設定→セキュリティプロファイルクリックする
③サービスの編集クリックしてSSHを実行中にする
環境
本環境はクローズドで構築している。
- vSphere Client:6.0.0
- vSphere Web Client:6.0.0
- ESXiバージョン:6.0.0
- vCenter Server Appliance:6.0.0
- VMバージョン:11
- tera term:4.96
VMの操作コマンド:vim-cmd
①対象VMが乗っているESXiにSSHでrootログインする
※VMに直接SSHするのではなく、ESXiにRootログインするので注意。
②vmidを取得する
ESXiに載っているVMに対してコマンド操作をするとき、VMに採番されているvmidを取得する必要があるため、以下のコマンドを実行する。
vim-cmd vmsvc/getallvms
このコマンドを実行すると、各VMの先頭にvmid が表示される。
その他にもVM名、ゲストOS、VMバージョンなどが分かる。
VMのパワーオン・オフ
以降のコマンドは、上記のコマンドで取得したvmidを使用して操作する。
vim-cmd vmsvc/power.on vmid
vim-cmd vmsvc/power.off vmid
VMのシャットダウン・再起動
vim-cmd vmsvc/power.shutdown vmid
vim-cmd vmsvc/power.reboot vmid
※このコマンドはVMにvmware toolsをインストールしないと使えないので注意。
【vmware toolsインストール方法】
以下の公式ドキュメントを参照。
https://kb.vmware.com/articleview?docid=1018377&lang=ja
VMのサマリを取得
vim-cmd vmsvc/get.summary vmid
このコマンドを実行するとかなり多くの情報が出力されるので、lessコマンドを使ってページ表示させたり、grepコマンドで取得したい情報だけを出力させると良い。
vim-cmd vmsvc/get.summary vmid | less
vim-cmd vmsvc/get.summary vmid | grep name
summary以外にもget.configやget.guestも使えるが、ほとんどget.summaryで必要な情報は得られる。
参考文献
今回参考にしたドキュメントは以下の通り。
コマンドライン ユーティリティを使用した一般的な仮想マシン関連タスクの実行
https://kb.vmware.com/articleview?docid=2012964&lang=ja