ESXi は基本的に vCenter や vSphere Client から操作することが多いと思いますが、トラブル対応時などはGUI操作を受け付けないことも多くコマンドラインから操作することもあると思います。
そんなときのために、基本的なコマンドをまとめておきたいと思います。
事前準備
ESXi ホストマシンでコマンドライン操作を行うためには、当然ながらSSH接続する必要があります。
SSH接続するための設定変更手順は以下にまとめてありますので、設定していない場合は以下を参照してSSH接続できる状態にしてください。
コマンドライン操作一覧
まずはここから。ということで 仮想マシン(VM)の一覧を取得します。
仮想マシン(VM)の一覧を取得
ESXi で VM を操作する際は VMID という仮想マシンの識別IDを指定するため、起動・停止などの操作をする前に実行するコマンドになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# vim-cmd vmsvc/getallvms|egrep "\.vmx|Vmid" Vmid Name File Guest OS Version Annotation 11 ce73_template [datastore1] ce73_template/ce73_template.vmx centos64Guest vmx-11 CentOS7.3 17 ce73_lvs01 [datastore1] ce73_lvs01/ce73_lvs01.vmx centos64Guest vmx-11 ip : 172.16.210.71 18 ce73_lvs02 [datastore1] ce73_lvs02/ce73_lvs02.vmx centos64Guest vmx-11 ip : 172.16.210.72 19 ce73_nginx01 [datastore1] ce73_nginx01/ce73_nginx01.vmx centos64Guest vmx-11 ip : 172.16.210.81 20 ce73_nginx02 [datastore1] ce73_nginx02/ce73_nginx02.vmx centos64Guest vmx-11 ip : 172.16.210.82 26 ce73_web01 [datastore1] ce73_web01/ce73_web01.vmx centos64Guest vmx-11 web01 27 ce73_web02 [datastore1] ce73_web02/ce73_web02.vmx centos64Guest vmx-11 web02 29 ce73_mysql [datastore1] ce73_mysql/ce73_mysql.vmx centos64Guest vmx-11 DB 30 testweb00 [datastore1] testweb00/testweb00.vmx centos64Guest vmx-11 for test 31 testdb00 [datastore1] testdb00/testweb00.vmx centos64Guest vmx-11 for test 32 ce73_ssh [datastore1] ce73_ssh/ce73_ssh.vmx centos64Guest vmx-11 SSH 35 ws2016-ad01 [datastore1] ws2016-ad01/ws2016-ad01.vmx windows9Server64Guest vmx-11 ip : 172.16.210.212 7 WS2012r2_04_dom.local [datastore1] WS2012r2_04/WS2012r2_04.vmx windows8Server64Guest vmx-11 ip : 172.16.210.204 |
注記やコメントが記載されていると見づらいので、ヘッダーとvmxファイルで grep しています。
実際に操作する際には、Vmid や File のパスを使用することが多いです。以下、用途に応じたコマンドの一覧です。
VMの起動・再起動・シャットダウン・パワーオフ
VMIDは↑で確認をした Vmid を指定します。
1 2 3 4 5 6 7 8 9 10 11 |
# 起動 # vim-cmd vmsvc/power.on VMID # 再起動 # vim-cmd vmsvc/power.reboot VMID # シャットダウン # vim-cmd vmsvc/power.shutdown VMID # パワーOFF # vim-cmd vmsvc/power.off VMID |
電源状態を確認
以下のコマンドで VM の起動状態を確認できます。
1 |
# vim-cmd vmsvc/power.getstate VMID |
実際に実行してみると以下のように表示されます。
1 2 3 4 5 6 7 8 9 |
# 停止しているVM # vim-cmd vmsvc/power.getstate 11 Retrieved runtime info Powered off # 起動しているVM # vim-cmd vmsvc/power.getstate 17 Retrieved runtime info Powered on |
VMの情報を取得
とりあえず以下のコマンドで取得できます。詳細はここでは端折ります(知らないだけ・・・汗)summary でだいたい必要そうな情報が取れるみたいです。
1 2 3 4 |
# vim-cmd vmsvc/get.summary vmid # vim-cmd vmsvc/get.config vmid # vim-cmd vmsvc/get.guest vmid # vim-cmd vmsvc/get.runtime vmid |
実際に実行してみると、ぶわっと出てきちゃうので省きます。気になる人は試してみて下さい。
インベントリの操作(登録/削除)
GUI(vSphere Client)からアクセスできなくなったときに、一度インベントリから削除したうえで、再度追加してやると操作出来るようになります なることがあります。
1 2 3 4 5 |
# イベントリへ登録 # vim-cmd solo/registervm VMXファイルのパス インベントリ名 # イベントリから削除 # vim-cmd vmsvc/unregister VMID |
VMの削除
仮想マシン自体が削除されますので、注意が必要です。
1 |
# vim-cmd vmsvc/destroy VMID |
VMの停止に関して
↑の方で説明した VM のシャットダウンやパワーオフのコマンドで停止できない場合は、何かトラブルが起きている可能性がある。ESXi ではVMをプロセスとして管理しているので、対象プロセスを特定してそのプロセスをキルするということでも停止が可能になります。
それらの方法は以下にまとめていますので参考にしてみてください。
以上です。
↓↓↓ VMware を理解する! ~オライリーっぽいカバーで~