vSphere Client、VMwareが提供するGUI、およびVMware vSphere Web/HTML5 Clientを使用して、ESXiホストとVMware環境を管理できます。ほとんどの設定はGUIで利用できますが、GUIに表示されない情報や設定を変更する必要がある場合があります。
その場合は、コマンドラインインターフェイス(CLI)または「コンソール」が必要です。これにより、非表示の設定を含め、すべての設定を構成できます。LinuxとESXiで同じものである従来のコマンドに加えて、ESXiには独自のESXCLIコマンドがあります。
このブログ投稿は、ESXiシェルコマンドの一部である便利なESXCLIコマンドをリストしたカタログ形式で作成されています。
ESXiシェルコンソールを開く方法
デフォルトでは、ESXiシェルはローカルおよびリモートアクセス用に無効になっています。これは、ESXiシェルまたはSSHアクセスを有効にするまでESXiシェルコマンドを実行できないことを意味します。VMwareはこの制限をセキュリティ上の理由から課しています。
ESXiでコマンドラインインターフェイスを有効にするための3つの主要な方法を見てみましょう。
デフォルトのESXiインターフェイスを使用してコンソールへのアクセスを有効にする
この方法は、ESXiホストに物理的なアクセス、つまりホストのモニターとキーボードがある場合に使用されます。
- ESXi Direct Console User Interface(DCUI)で、トラブルシューティングオプションに移動し、ESXi Shellを有効にするおよびSSHを有効にする文字列に移動し、各オプションを有効にするためにEnterキーを押します。
- ESXiシェルを有効にした後、ESXiを実行しているマシンのコンソールを開くには、Alt+F1を押します。その後、ログインとパスワードを入力する必要があります(rootユーザーの資格情報を使用できます)。
- ESXiシェルコマンドを実行できます。
- ESXi DCUIに戻る必要がある場合は、Alt+F2を押します。 SSHを有効にするオプションを使用すると、SSHクライアントを使用してリモートでESXiコンソールを開くことができます。
VMware Host Clientを使用してコンソールアクセスを有効にする
- Webブラウザを開き、ESXiホストのIPアドレスをアドレスバーに入力してログインします。
- ホスト>アクション>サービスに移動し、Secure Shell(SSH)を有効にするをクリックして、ESXi再起動までSSHアクセスを有効にします。
同様に、ローカルESXiホストでコンソールシェルを有効にすることもできます。サービスメニューに移動します。管理>サービス。 TSM-SSHサービスを右クリックします。ポリシー > ホストと共に開始と停止をクリックして、ESXi再起動後もSSHアクセスを有効にします。
- これで、SSHクライアントを使用してリモートでESXiコンソールに接続できます。
vCenterおよびVMware vSphere Clientを使用してコンソールへのアクセスを有効にする
この方法は、ESXiホストがvCenter Serverで管理されている場合に使用できます。
- ウェブブラウザーでVMware HTML5 vSphere Clientにログインします。
- ホストとクラスターに移動し、ESXiホストを選択します。
- 構成タブを選択し、システム > サービスを開き、サービスのリストでSSHをクリックします。
- 開始を押してSSHサーバーを起動するか、起動ポリシーを編集してホストと一緒に開始と停止を選択して、SSHサーバーを長期間有効にすることもできます。また、サービスメニューでESXiシェルを有効にすることもできます。
SSHアクセスが有効になると、SSHクライアントでリモートでESXiホストに接続してESXCLIコマンドを実行できます。
SSH経由で接続
ESXiコンソールにリモートでSSH経由で接続するには、Linuxコンソールで次のアクションを実行します。
- 次のようなコマンドを実行します:
ssh 192.168.101.221
または
ここで192.168.101.221はこの例で使用されるESXiサーバーのIPアドレスです。
- ESXiユーザーのユーザー名とパスワードを入力する必要があります(ESXiではデフォルトの管理ユーザーとしてrootが使用できます)。
同様に、コマンドラインでSSHを介して別のESXiホストに接続できます。
Windowsでは、PuTTYを使用できます:
- PuTTYを開く
- ESXiホストのIPアドレスとポートを入力します。
- 開くを押してSSHを介してESXiホストに接続します。
SSH経由でESXiホストに接続し、リモートでESXCLIコマンドを実行する方法は、最も一般的で安全な方法です。
LinuxにESXCLIをインストールする方法
ESXCLIコマンドをリモートで実行する別の方法は、LinuxにESXCLIをインストールすることです。これにはPythonをインストールする必要があります。以下はLinuxにESXCLIをインストールするための主な手順です:
- システムの変更を行う前にLinuxマシンのバックアップを取ります。
- VMwareのウェブサイトからESXCLIをダウンロードします。
- ダウンロードしたesxcli-8.0.0-22179150.tgzアーカイブからコンテンツを抽出します(rootとして実行):
tar zxf esxcli-8.0.0-22179150.tgz -C /opt/vmware
- ESXCLIインストーラを次のコマンドで実行します:
python setup.py install
-
esxcli --server ESXI_IP_address --help
ホスト間に信頼関係が必要です。
証明書エラー。サーバー SHA-256 ハッシュ値: 64:CC:E5:F8:A4:AA:F6:9B:58:55:78:B7:E3:B3:69:10:83:3B:22:3C:BB:17:3D:12:28:D1:CD:E9:48:7A:FF:AA (信頼されていません)
- この問題を解決するには、前の出力メッセージに表示されたユーザー名、パスワード、およびサムプリントを指定してコマンドを実行してください:
esxcli --server 192.168.101.101 --username root --password 'your_password' --thumbprint 64:CC:E5:F8:A4:AA:F6:9B:58:55:78:B7:E3:B3:69:10:83:3B:22:3C:BB:17:3D:12:28:D1:CD:E9:48:7A:FF:AA --help
代替手段として、Linux マシンに証明書をインストールしてみることもできます。ESXi ホスト上の証明書は /etc/vmware/ssl/rui.crt に保存されています。
ESXCLI コマンドの概要
ESXCLIは、ESXiシェルの一部であり、仮想インフラストラクチャ(ハードウェア、ネットワーク、ストレージなどのESXiコンポーネント)を管理し、ESXi自体を低レベルで制御するためのCLIフレームワークです。技術的には、ESXCLIはPythonスクリプトです(ESXiの/bin/esxcli.pyにあります)。すべてのESXCLIコマンドはESXiシェル(コンソール)で実行する必要があります。一般的には、esxcli
は、名前空間とそのオプションを持つ幅広いサブコマンドリストを持つコマンドです。
次のコマンドを実行して、esxcliを見つけ、ESXCLIの性質を調べることができます:
which esxcli
ls -l /sbin/esxcli
コンソール出力を確認することで、ESXCLIが/sbin/ディレクトリにあるPythonスクリプトであることがわかります。スクリプトの内容を見たい場合は、組み込みのテキストエディタ viを使用できます。
基本的に、ESXCLIの構文は次のようになります:
esxcli [options] {namespace}+ {cmd} [cmd options]
したがって、ESXCLIはESXCLIコマンドのメインカテゴリ(名前空間)であるブランチから構成されています。ESXCLIコマンドはESXiで使用される他のコンソールコマンドと同様に大文字と小文字を区別します。すべての利用可能なESXCLI名前空間とコマンドの一覧は、次のコマンドを実行した後に表示されます:
esxcli esxcli command list
利用可能なESXCLIコマンドの一覧は、ESXiのバージョンによって異なります。新しいコマンドを追加することができます。
したがって、ESXi 8.0のトップESXCLI名前空間のリストは次のとおりです:
- デバイス – デバイスマネージャーコマンド
- esxcli – ESXCLIそのものに関連するコマンド
- fcoe – イーサネット上のファイバーチャネルコマンド
- グラフィックス – VMwareのグラフィックスコマンド
- ハードウェア – ハードウェアのプロパティを確認し、ハードウェアを構成するためのコマンド
- iscsi – VMware iSCSIコマンド
- ネットワーク – この名前空間には、一般的なホストネットワーク設定(ESXiホストのIPアドレス、DNS設定、ファイアウォールなど)や、vSwitch、ポートグループなどの仮想ネットワーキングコンポーネントを管理するための幅広いコマンドが含まれています。
- nvme – VMware NVMeドライバーの拡張機能を管理する
- rdma – リモートダイレクトメモリアクセスプロトコルスタックを管理するためのコマンド
- sched – スケジューリングとVMkernelシステムプロパティを構成するためのコマンド
- ソフトウェア – ESXiソフトウェアイメージとパッケージを管理する
- ストレージ – ストレージを管理するためのコマンド
- システム – VMkernelシステムプロパティ、カーネルコアシステム、およびシステムサービスを構成するためのコマンド
- vm – 仮想マシン操作を制御するために使用できる一部のコマンド
- vsan – VMware vSANコマンド
主要なコマンドは、同じアクションを示す動詞として表示されます。
- リスト – 定義された名前空間で利用可能なオブジェクトのリストを表示します(たとえば、
esxcli hardware bootdevice list
– 利用可能なブートデバイスをリストします) - 取得 – 定義された設定またはプロパティの値を取得します(たとえば、
esxcli hardware clock get
– 設定された時刻を確認します) - 設定 – 必要なパラメータを手動で設定します(たとえば、
esxcli hardware clock set -y 2024 -s 00
– 年を2024年に設定し、秒を00に設定します) - ロード/アンロード – システム構成をロード/アンロードします(
esxcli network firewall load
– 構成ファイルに格納されているファイアウォールモジュールとファイアウォール設定をロードします)
適切な名前空間に関連する特定のESXCLIコマンドを思い出せない場合は、コマンドを入力してコンソールの出力でヒントを表示できます。
たとえば、次のように入力します:
esxcli network
で、ネットワーク名前空間のすべての利用可能なコマンドを表示します
次に、次のように入力します:
esxcli network vm
で、vm名前空間のコマンドを確認します
ESXCLIログファイルは/var/log/esxcli.logにあります
ESXCLIコマンドが正常に実行されなかった場合、データはこのファイルに書き込まれます。ESXCLIコマンドが正常に実行された場合、このログファイルには何も書き込まれません。
便利なESXCLIコマンド
基本的な ESXCLI コマンドの動作原理に慣れたので、VMware vSphere で使用できる便利なコマンドの具体的な例を見てみましょう。この記事で考慮されている ESXCLI コマンドのリストは、名前空間名と同等のカテゴリに分割されています。
ESXi でハードウェアの詳細を確認するコマンド
hardware 名前空間を使用することで、インストールされたデバイスの詳細情報を表示できます。
- インストールされた PCI デバイスを表示するには、次の ESXCLI コマンドを実行します:
esxcli hardware pci list | more
- ESXi サーバにインストールされているメモリの量を確認します:
esxcli hardware memory get
- インストールされたプロセッサの詳細情報を表示します:
esxcli hardware cpu list
ESXCLI システムコマンド
このセクションでは、system ESXCLI 名前空間のコマンドを確認できます。
- 正確な ESXi バージョンとビルド番号、インストールされたアップデートとパッチの数を含む情報を確認します:
esxcli system version get
- ESXi サーバーのホスト名を確認します:
esxcli system hostname get
- ESXi のインストール時間を確認します:
esxcli system stats installtime get
- SNMP 構成を確認します:
esxcli system snmp get
- ESXi ホストをメンテナンスモードに入れます:
esxcli system maintenanceMode set --enable yes
- メンテナンスモードを終了します:
esxcli system maintenanceMode set --enable no
ESXi ホストをメンテナンスモードに入れた後、ホストをシャットダウンまたは再起動できます。
- ESXi ホストの電源をオフにします:
esxcli system shutdown poweroff
- ホストを再起動するコマンドは類似しています:
esxcli system shutdown reboot
-
esxcli システム シャットダウン 再起動 -d 60 -r "パッチのインストール"
この例では、遅延は60秒です。
別のコマンドは、標準のバックグラウンドスクリーンの代わりにカスタムウェルカムメッセージを設定することです。ここでは “<F2> システム/ログの表示をカスタマイズする <F12> シャットダウン/再起動” のヒントとホストを管理するためのIPアドレスが表示されます。カスタムウェルカムメッセージを設定した後は、この設定されたメッセージのみが黒い画面に表示されます。混乱を避けるために手動で “F2を押してください” と入力できます。
- カスタムメッセージは、ESXiホストにログインしていないユーザーの表示にESXiホストの情報を隠すために使用できます。
esxcli システム welcomemsg set -m="NAKIVOへようこそ! F2を押してください"
- ウェルカムメッセージが既に設定されているかどうかを確認します:
esxcli システム welcomemsg get
ESXCLIネットワークコマンド
ネットワーク名前空間は、ESXCLIの最も大きな名前空間の1つです。診断に役立つコマンドを探索しましょう。
- アクティブなネットワーク接続の状態を確認します:
esxcli network ip connection list
- インストールされているネットワークアダプタのリストを表示します:
esxcli network nic list
- ネットワークインターフェースに関する情報を表示します:
esxcli network ip interface list
- サーバーに存在するネットワークインターフェースのIPアドレスに関する情報を表示します:
esxcli network ip interface ipv4 get
- VMのネットワーク情報を表示する:
esxcli network vm list
- ドメイン検索設定を表示する:
esxcli network ip dns search list
- ネットワーク設定で設定されたDNSサーバーを表示する:
esxcli network ip dns server list
- 仮想スイッチとポートグループのリストを表示する:
esxcli network vswitch standard list
- ネットワークインターフェイスvmnic0の統計情報を表示する:
esxcli network nic stats get -n vmnic0
- ファイアウォールの状態とルール設定を確認する:
esxcli network firewall get
esxcli network firewall ruleset list
注意: デフォルトのファイアウォールポリシーは、逆のルールが設定されていない場合はトラフィックをドロップする。
- トラブルシューティングのためにESXiホストのファイアウォールを一時的に無効にすることができます。
esxcli network firewall set --enabled false
- ファイアウォールを有効にするには、次のコマンドを使用する必要があります。
esxcli network firewall set --enabled true
セキュリティ上の理由から、ESXiファイアウォールを有効にすることが推奨されます。
ネットワーク名前空間には多くのコマンドが含まれています。今日のブログ投稿のネットワークセクションでは、それらの基本的なものと最も人気のあるものについてのみ考慮されています。ESXCLIを使用して、多くのネットワークパラメータを設定することは可能ですが、今日の記事の範囲外の長いチュートリアルが必要になります。
ESXCLIストレージコマンド
ストレージ名前空間を使用すると、ストレージ設定を確認して編集できます。
-
マウントされたVMFSボリュームに関する情報を確認します。
esxcli storage vmfs extent list
-
VMFSファイルシステムからディスクデバイスへのマッピングを表示します。
esxcli storage filesystem list
- システム上のすべてのiSCSIパスをリストアップする方法:
esxcli storage core path list
- マウントされたNFS共有のリストを表示する方法:
esxcli storage nfs list
ESXCLIでSMARTをチェックする方法
S.M.A.R.T. is useful for disk diagnostics and for preventing disk failure. You can read the S.M.A.R.T. data and, if you discover that something is wrong with your disk, you can make a timely decision to replace the disk.
- まず、すべてのストレージデバイスをリストアップし、一意のデバイス名を特定します(下のスクリーンショットを参照):
esxcli storage core device list
- 次に、そのディスクデバイスのS.M.A.R.T.データを取得するコマンドを使用します:
esxcli storage core device smart get -d naa.50026b7267020435
ここでnaa.50026b7267020435は、この例で使用されているデバイスの名前です。
iSCSIアダプタのリストをチェックする方法
iSCSIは、ブロックレベルで共有ストレージにアクセスするために広く使用されており、ESXCLIにはiSCSIストレージを管理するための別個のiscsi名前空間があります。
- 利用可能なiSCSIアダプタのリストを表示する方法:
esxcli iscsi adapter list
- iSCSIアダプタの再検出と再スキャン:
<コード>esxcli iscsi adapter discovery rediscover -A adapter_name
<コード>esxcli storage core adapter rescan -A adapter_name
-A adapter_nameの代わりに、–allオプションを使用してすべてのアダプタをリスキャンすることができます。
ESXiソフトウェアVIBリストの確認
ESXi用のソフトウェアパッケージは、通常、VIBファイル(vSphereインストールバンドル)として配布されます。VIBファイルは、システムにインストールできるzipパッケージのコンテナのようなもので、記述子と署名ファイルが含まれています。さらに、VIBは通常、標準のZIP形式のアーカイブファイルにパックされたファイルとして配布されます。適切なハードウェアを使用するためにVIBをESXiイメージに含めるか、セキュリティパッチを適用するために既存のシステムにVIBをインストールする必要がある場合があります。
- ESXiホストにインストールされているVIBパッケージのリストを表示できます。
<コード>esxcli software vib list
- ESXCLIでVIBをインストールできます(ESXiホストはメンテナンスモードでなければなりません):
<コード>esxcli software vib install -d /vmfs/volumes/datastore1/patches/patch_name.zip
ESXCLIでのVM操作の管理
vmネームスペースは、実行中の仮想マシンプロセスに対する操作に使用できます。
- 実行中のVMのリストを確認し、そのWorld IDを表示します:
esxcli vm process list
ESXiシェルコマンドを使用して、応答しない仮想マシンを終了できます。この場合、ESXCLIを使用すると、VMware vSphere Client、VMware Host Client、またはVMware WorkstationのGUIを使用してVMをシャットダウンできない場合に便利です。
esxcli vm process list
コマンドの出力に表示されるWorld IDを使用して、VMをシャットダウンします。現在の例では、必要なVMのWorld IDは75498です。esxcli vm process kill -w 75498 -t soft
- softコマンドタイプが役立たない場合は、ハードメソッドを使用してVMを直ちにシャットダウンすることを検討してください。
esxcli vm process kill -w 75498 -t hard
killコマンドには3つの利用可能なオプションがあります:
- soft – 正しいシグナルがゲストオペレーティングシステムに送信され、VMが正しくシャットダウンされます
- hard – VMが直ちにシャットダウンされます
- 強制 – VM は、電源ケーブルを抜いた場合にコンピューターが電源を切るのと同様に、電源を切っています。前述の2つのタイプが失敗した場合にのみ、このタイプの VM の電源を切ることができます。
その他の便利な ESXi シェルコマンド
ESXCLI コマンド以外にも、多くの ESXi シェルコマンドを使用できます:
- コンソールから ESXi DCUI を開く(SSH 経由で ESXi シェルに接続すると、色が異なります):
dcui
Ctrl+C を押して、コマンドプロンプトに戻ります。
- 厚いプロビジョニングされた仮想ディスクを vmkfstools を使用して薄いプロビジョニングされた仮想ディスクに変換します:
vmkfstools -i /vmfs/volumes/vmfs_datastore/vm_name/thick_disk.vmdk -d thin /vmfs/volumes/vmfs_datastore/vm_name/new_thin_disk_name.vmdk
ESXi シェルコマンドの中でも、vmkfstools は、ストレージ操作やストレージデバイス、VMFS ボリューム、仮想ディスクの管理に強力なコマンドです。厚いプロビジョニングと薄いプロビジョニング、仮想ディスクの縮小については、ブログ投稿を参照してください。
- ESXiタスクマネージャーを開く:
esxtop
esxtop
コマンドでタスクマネージャーを開いた後、適切なキーを押してタブ間を切り替えることができます:C – CPU
I – 割り込み
M – メモリ
N – ネットワーク
D – ディスクアダプタ
U – ディスクデバイス
V – ディスクVM
P – 電源管理
- 現在のディレクトリ内でファイルを見つける:
find . -name filename.txt
- ファイルを検索したいディレクトリ名で.文字を置き換え、ファイル名を
filename.txt
で置き換えてください。たとえば、/vmfs/volumes/ディレクトリ内でdiskname.vmdkファイルを検索したい場合、次のコマンドを実行します。find /vmfs/volumes/ -name diskname.vmdk
- VMwareコンソールを対話的に開く:
vsish
- 読み込まれたvmkernelドライバーを表示:
vmkload_mod --list
- スワップパーティションの設定を確認:
esxcli sched swap system get
- ユーザーをリストするには、以下のコマンドのいずれかを使用できます:
esxcli system account list
cat /etc/passwd or less/etc/passwd
- ESXiコマンドが/usr/sbinディレクトリにあることを確認する:
ls /usr/sbin
新しいユーザーの作成
ESXiシェルコマンドを使用して新しいESXiユーザーを作成する方法は少なくとも2つあります。
ESXiのadduserコマンド
- ESXiコンソールで
adduser
コマンドを入力すると、次のメッセージが表示されます。-sh: adduser: not found
- このコマンドを実行するには、適切なbusyboxバイナリへの完全なパスを定義する必要があります。
/usr/lib/vmware/busybox/bin/busybox adduser
これで、このコマンドの使用オプションを確認できます。
- 最後に、ESXiシステムユーザーを追加するための正確なコマンドを実行します。
/usr/lib/vmware/busybox/bin/busybox adduser -s /bin/sh -G root -h / user1
ここで:
-s /bin/shは、ユーザーログイン後に使用されるシェルです。
-G rootは、新しいユーザーがメンバーであるグループ名(rootグループ)です。
-h /は、新しいユーザーのホームディレクトリ(ルートディレクトリ)です。
user1は、ユーザー名です。
- プロンプトが表示されたら新しいパスワードを入力し、パスワードを確認してください。
ESXCLIでユーザーを作成する
代替案として、ESXCLIを使用して1つのコマンドで新しいユーザーを追加することもできます。
esxcli system account add -d="NAKIVO user" -i="nakivo" -p="Password-Test321" -c="Password-Test321"
ここで、
-dは表示される説明を意味し、
-pは新しいユーザーのパスワードを設定し、
-cはパスワードの確認を意味します。
コマンドラインで新しいユーザーを作成する方法を選択するか?2番目の方法で使用される単一のコマンドは便利に見えるかもしれませんが、セキュリティの観点からはそうではありません。覚えている場合は、ESXiシェルにログインした直後に表示された警告メッセージがありました。
ESXiシェルで実行されるすべてのコマンドはログに記録され、サポートバンドルに含まれる可能性があります。コマンドラインでパスワードを直接提供しないでください。ほとんどのツールは、秘密をプロンプトで要求するか、標準入力から受け入れることができます。
セキュリティがあなたにとって懸念事項である場合、パスワードをプレーンテキストとしてコマンドに含めずにコマンドを入力してください。パスワードが必要な場合、通常はプロンプトが表示され、標準のコンソール入力で入力できます。たとえば、ESXCLIを使用して新しいユーザーを作成したい場合は、次のようなコマンドを使用します。
esxcli system account add -d="user2" -i="user2" -p -c
別途ESXiパスワードがプロンプトされ、パスワードを入力している間、コンソールには表示されません。
結論
システムコンポーネント、ネットワーク、ストレージ、VIBソフトウェア、仮想マシンを管理するためのVMwareコンソールコマンドがあります。ESXiのコマンドラインインターフェイスを使用することで、VMware vSphereクライアントおよびVMwareホストクライアントの素晴らしいグラフィカルユーザーインターフェイスに加えて、さらなる力を発揮できます。
設定を表示したり構成したりするために、GUIでは隠されているか利用できない設定に対して、ESXiシェルコマンドをローカルで、ESXi SSHコマンドをリモートで使用できます。このブログ投稿で提供されているESXiコマンドリストを使用して、ESXiの微調整を行い、VMware vSphereのコマンドラインインターフェイスを使用することで追加の力を体験してください。
さらに詳細を知るために、PowerCLIについて読んでみてください。これは、WindowsPowerShellからVMware vSphereを管理するためのコマンドラインインターフェイスの一種です。
Source:
https://www.nakivo.com/blog/most-useful-esxcli-esxi-shell-commands-vmware-environment/