【vSphere ESXi7.0u2】ESXCLIコマンドでESXiの設定に使えそうなもの一覧

どうも、Tです。

ESXCLIでできることを一覧化しておきたく記事にしてみました。

目次

ここでの結論

下記の設定はvSphere ClientもしくはHost Clientから行う必要があると思われます。

  • NTPの起動ポリシーの変更
  • ローカルデータストア名の変更

なぜESXCLIを使うのか

ESXiが複数あるときに、vSphere ClientやHost ClientからGUIでポチポチするのもいいのですが、台数が多いと大変です。vSphere CLI、Power CLI、Host ProfileなどスクリプトやvSphereの機能などを使って行う方法もありますが、ライセンスもPowerShellなどの環境もなくESXiにSSH接続だけすれば、ESXiのコマンドとして使えるESXCLIが一番汎用性が高いためまとめみみました。

環境

  • vSphere ESXi: 7.0.2 Build: Releasebuild-17867351

前提条件

参考

ESXi 7.0 ESXCLI Command Referenceを参考にしました。

- VMware {Code} Community
The site home page

事前作業

インストール後、マネジメントのIPアドレスとSSH接続許可だけ設定しています。コマンドは、rootユーザーでSSH接続後に実行しています。

ESXCLIのヘルプ

ESXCLIは、esxcli xxxx -helpなどでコマンドのヘルプが見えるので参考にしてください。記事では説明や出力結果まで書くと長くなりすぎるので、割愛しています。

ESXCLIの注意点

ESXCLIコマンドをスクリプト化して実行すると設定が飛ばされたりします。タイムアウト値などを設定すればいいのかもしれませんが、面倒なのでコマンドを羅列しておき1行1行コピペで実行するようにしています。

ESXCLIで設定関与しなくていいもの

ESXCLIは、ESXi単体の設定を行うものです。vSphere Clientなどから手動で行う方が簡単なようなものは、特に調べていません。

  • VDS関連
  • vSAN関連
  • 共有ストレージのマウント
  • ライセンスの割り当て
  • etc

TCP/IP設定

ホスト・FQDN・ドメイン名設定

ホスト名設定

esxcli system hostname set --host <ホスト名>

FQDN設定

esxcli system hostname set --fqdn <FQND名>

ドメイン名設定

esxcli system hostname set --domain <ドメイン名>

確認

esxcli system hostname get

DNS設定

DNS追加・削除

DNSの追加。

esxcli network ip dns server add --server <DNSのIPアドレス>

複数ある場合は、複数実行。1番目に実行したものがプライマリになる。

3つ目の登録できるがvSphere Client上表示されず仕様としても問題ないか不明のため2つまでの登録にしておく。

TCP/IPスタックのデフォルトスタックになる。他のスタックの場合は、-N|–netstack=<str>オプションをつける。

DNSの削除。

esxcli network ip dns server remove --server <DNSのIPアドレス>
TCP/IPスタックのデフォルトスタックになる。他のスタックの場合は、-N|–netstack=<str>オプションをつける。

確認

esxcli network ip dns server list

ドメイン検索の設定

ドメイン検索の追加・削除

ドメイン検索追加。

esxcli network ip dns search add --domain <ドメイン名>
TCP/IPスタックのデフォルトスタックになる。他のスタックの場合は、-N|–netstack=<str>オプションをつける。

ドメイン検索削除

esxcli network ip dns search remove --domain <ドメイン名>
TCP/IPスタックのデフォルトスタックになる。他のスタックの場合は、-N|–netstack=<str>オプションをつける。

確認

esxcli network ip dns search list

時間の設定

手動時刻設定

時刻設定

esxcli system time set --year <西暦> --month <月> --day <日> --hour <時間> --min <分> --sec <秒>
#サンプル
esxcli system time set --year 2021 --month 9 --day 6 --hour 5 --min 47 --sec 0
設定はUTC時刻になっているため、日本時間で設定するには現時刻から-9時間にします。

確認

esxcli system time get

NTP設定

NTPサーバーの追加

esxcli system ntp set --server=<NTPサーバー1> --server=<NTPサーバー2>

NTP有効化、無効化

NTP有効化。

esxcli system ntp set --enabled=yes

NTP無効化

esxcli system ntp set --enabled=no

NTPサービス起動ポリシー

調べた限りESXi上のコマンドラインから変更する方法が見つかりませんでした。デフォルトでゃ「手動で起動および停止」になっているため、ここはvSphere ClientかHost Clientから設定変更するしかなさそうです。

NTPを初期化(デフォルト設定に戻る)

esxcli system ntp set --reset

NTP時刻同期確認

ntpq -p

仮想スイッチ

仮想スイッチの作成・削除

仮想スイッチの作成。

esxcli network vswitch standard add --vswitch-name=<仮想スイッチ名>
作成時にLoad Blancingが「Load Balancing: srcport(送信元の仮想ポートに基づいたルート)」で作成される。

仮想スイッチの削除。

esxcli network vswitch standard remove --vswitch-name=<仮想スイッチ名>

仮想スイッチのアップリンク追加・削除

アップリンクの追加。

esxcli network vswitch standard uplink add --uplink-name=<vmnic番号> --vswitch-name=<仮想スイッチ名>
スタンバイアダプタとして設定される。
複数のvmnicをアップリンクにする場合、複数回実行する。

アップリンクの削除。

esxcli network vswitch standard uplink remove --uplink-name=<vmnic番号> --vswitch-name=<仮想スイッチ名>

チーミング・フェイルオーバー設定(ロードバランシング)

esxcli network vswitch standard policy failover set --load-balancing=<オプション> --vswitch-name=<仮想スイッチ名>
vSphere Client上の表示 –load-balancingオプション
IPハッシュに基づいたルート iphash
送信元MACハッシュに基づいたルート mac
送信元の仮想ポートに基づいたルート portid
明示的なフェイルーバー順序を使用 explicit

設定時のオプション名と「esxcli network vswitch standard policy failover get 」コマンドで表示したときに一部表示名が異なるため注意。

getのLoad Balancing表示 –load-balancingオプション
iphash iphash
srcmac mac
srcport portid
explicit explicit

チーミング・フェイルオーバー設定(フェイルオーバー順序)

有効なアダプタに設定。

esxcli network vswitch standard policy failover set --active-uplinks=<vmnic番号> --vswitch-name=<仮想スイッチ名>

スタンバイアダプタに設定。

esxcli network vswitch standard policy failover set --standby-uplinks=<vmnic番号> --vswitch-name=<仮想スイッチ名>

  • 事前に仮想スイッチにアップリンクを設定しておく必要がある。
  • 複数ある場合、下記のように指定できる。
  • –active-uplinks=vmnic0,vmnic3
  • –standby-uplinks=vmnic2,vmnic4

チーミング・フェイルオーバー設定(フェイルバック)

フェイルバックしない。

esxcli network vswitch standard policy failover set --failback=no --vswitch-name=<仮想スイッチ名>

フェイルバックする。

esxcli network vswitch standard policy failover set --failback=yes --vswitch-name=<仮想スイッチ名>

MTU設定

esxcli network vswitch standard set --mtu=<MTUサイズ> --vswitch-name=<仮想スイッチ名>

確認

仮想スイッチの確認

esxcli network vswitch standard list

特定の仮想スイッチの確認

esxcli network vswitch standard list --vswitch-name=<仮想スイッチ名>

仮想スイッチのフェイルオーバー設定の確認

esxcli network vswitch standard policy failover get --vswitch-name=<仮想スイッチ名>

設定時のオプション名と「esxcli network vswitch standard policy failover get 」コマンドで表示したときに一部表示名が異なるため注意。

getのLoad Balancing –load-balancingオプション
iphash iphash
srcmac mac
srcport portid
explicit explicit

仮想マシンポートグループ

仮想マシンポートグループの追加・削除

仮想マシンポートグループの追加。

esxcli network vswitch standard portgroup add --portgroup-name=<ポートグループ名> --vswitch-name=<仮想スイッチ名>

仮想マシンポートグループの削除。

esxcli network vswitch standard portgroup remove --portgroup-name=<ポートグループ名> --vswitch-name=<仮想スイッチ名>
ポートグループ名にスペースが入る場合はダブルクォーテーションで囲うことで対応可能。

仮想マシングループのVLAN ID設定

esxcli network vswitch standard portgroup set --portgroup-name=<ポートグループ名> --vlan-id=<VLAN ID>
元のなし(0)に戻す場合は、–vlan-id=0を指定。

チーミング・フェイルオーバー設定のオーバーライド(ロードバランシング)

esxcli network vswitch standard portgroup policy failover set --portgroup-name=<ポートグループ名> --load-balancing=<オプション>
vSphere Client上の表示 –load-balancingオプション
IPハッシュに基づいたルート iphash
送信元MACハッシュに基づいたルート mac
送信元の仮想ポートに基づいたルート portid
明示的なフェイルーバー順序を使用 explicit

設定時のオプション名と「esxcli network vswitch standard policy failover get 」コマンドで表示したときに一部表示名が異なるため注意。

getのLoad Balancing表示 –load-balancingオプション
iphash iphash
srcmac mac
srcport portid
explicit explicit

チーミング・フェイルオーバー設定のオーバーライド(フェイルオーバー順序)

有効なアダプタに設定。

esxcli network vswitch standard portgroup policy failover set --portgroup-name=<ポートグループ名> --active-uplinks=<vmnic番号>

スタンバイアダプタに設定。

esxcli network vswitch standard portgroup policy failover set --portgroup-name=<ポートグループ名> --standby-uplinks=<vmnic番号>

チーミング・フェイルオーバー設定のオーバーライド(フェイルバック)

フェイルバックする。

esxcli network vswitch standard portgroup policy failover set --portgroup-name=<ポートグループ名> --failback=yes
ファイルバックしない。
esxcli network vswitch standard portgroup policy failover set --portgroup-name=<ポートグループ名> --failback=no

オーバーライドの解除

esxcli network vswitch standard portgroup policy failover set --portgroup-name=<ポートグループ名> --use-vswitch
すべてのオーバーライド設定が初期化(仮想スイッチの設定を引き継ぐ)に戻る。

確認

仮想マシンポートグループの確認

esxcli network vswitch standard portgroup list

仮想マシンポートグループのフェイルオーバー設定の確認

esxcli network vswitch standard portgroup policy failover get --portgroup-name=<ポートグループ名>

VMKernelアダプタ

VMkernelの作成・削除

VMKernelの作成。

esxcli network ip interface add --interface-name=<vmk番号> --portgroup-name=<ポートグループ名>

VMkernelの削除

esxcli network ip interface remove --interface-name=<vmk番号>

VMKernelのMTU設定

esxcli network ip interface set --interface-name=<vmk番号> --mtu=<MTUサイズ>

VMKernelのIPアドレス設定

VMkernelのIPアドレス設定。

esxcli network ip interface ipv4 set --interface-name=vmk1 --ipv4=192.168.100.101 --netmask=255.255.255.0 --gateway=192.168.100.254 --type=static
–gateway=は省略可能
VMkernelのIPアドレス設定なし(デフォルト戻し)
esxcli network ip interface ipv4 set --interface-name=vmk1 --type=none

VMKernelの有効な使用可能なサービス設定

タグの追加。

esxcli network ip interface tag add --interface-name=<vmk番号> --tagname=<タグオプション名>

タグの削除。

esxcli network ip interface tag remove --interface-name=<vmk番号> --tagname=<タグオプション名>
使用可能なサービス名 –tagnameオプション
vMotion VMotion
プロビジョニング vSphereProvisioning
Fault Toleranceのログ faultToleranceLogging
管理 Management
vSphere Replication vSphereReplication
vSphere Replication NFC vSphereReplicationNFC
vSAN VSAN
vSphere Backup NFC vSphereBackupNFC

確認

VMkernelの確認

esxcli network ip interface list

VMKernelのIPアドレスの確認

esxcli network ip interface ipv4 address list

使用可能なサービス名

esxcli network ip interface tag get --interface-name=<vmk番号>

ローカルデータストアの名称変更

ローカルデータストアの名称変更

vim-cmd hostsvc/datastore/rename <現在のデータストア名> <変更後のデータストア名>
以前このコマンドで変更できましたが、ESXi7.0.2では、コマンドのエラーはでませんがデータストア名が変更されませんでした。vSphere ClientかHost Clientから手動で変更する必要があるようです。

データストアの一覧

esxcli storage filesystem list

iSCSI用ソフトウェアアダプタの設定

iSCSIソフトウェアアダプタの追加

esxcli iscsi software set --enabled=yes

iSCSIソフトウェアアダプタのリスト

esxcli iscsi adapter list

iSCSIソフトウェアアダプタ情報取得

esxcli iscsi adapter get --adapter=<vmhba名>

iSCSIイニシエータ名の変更

esxcli iscsi adapter set --adapter=<vmhba名> --name=<変更するIQN名>

iSCSIターゲットの追加・削除

iSCSIターゲットの追加

esxcli iscsi adapter discovery sendtarget add --adapter=<vmhba名> --address=<iSCSIストレージIPアドレス or ホスト名>

iSCSIターゲットの削除

esxcli iscsi adapter discovery sendtarget remove --adapter=<vmhba名> --address=<iSCSIストレージIPアドレス or ホスト名>

iSCSIターゲットの一覧

esxcli iscsi adapter discovery sendtarget list

iSCSIセッションの表示

esxcli iscsi session list

ストレージのマルチパスポリシーの変更

マルチパスポリシーの変更

下記のコマンドで、「naa.600c0ff00014c4caba600a6101000000」のような表記のデバイス名を取得しておく。

esxcli storage nmp device list

esxcli storage nmp device set --device=<デバイス名> --psp=<PSPオプション>
#サンプル
esxcli storage nmp device set --device=naa.600c0ff00014c4caba600a6101000000 --psp=VMW_PSP_RR

vSphere Client上のパス選択ポリシー PSPオプション
最近の使用(VMwrae) VMW_PSP_MRU
ラウンドロビン(VMware) VMW_PSP_RR
固定(VMware) MW_PSP_FIXED

確認

Path Selection Policyを確認する。

esxcli storage nmp device list

システムの詳細設定

よく変更しそうな詳細設定

オプション名 意味
/UserVars/SuppressShellWarning 1 SSH,SHELL有効時に警告抑止

数値パラメーターの設定

esxcli system settings advanced set --option=<オプション名> --int-value=<数値>
#サンプル
esxcli system settings advanced set --option=/UserVars/SuppressShellWarning --int-value=1

文字列パラメーターの設定

esxcli system settings advanced set --option=<オプション名> --string-value=<文字列>

デフォルト値へ戻す

esxcli system settings advanced set --default --option=/UserVars/SuppressShellWarning

確認

一覧の取得

esxcli system settings advanced list

デフォルト値と異なる設定を確認

esxcli system settings advanced list --delta

ツリーの一部の設定を確認

esxcli system settings advanced list --tree=<ツリー名>
#サンプル
esxcli system settings advanced list --tree=UserVars

電源管理(ポリシー)

電源ポリシーの設定

以下の形式のいずれかで設定。

esxcli hardware power policy set --id=<ID番号>
esxcli hardware power policy set --name="<Name>"
esxcli hardware power policy set --short-name=<Short Name>
vSphereクライアント上の表示 ID Name Short Name
高パフォーマンス 1 High Performance static
バランシング済み 2 Balanced dynamic
省電力 3 Low Power low
カスタム 4 Custom custom

確認

esxcli hardware power policy get

メンテナンスモード

メンテナンスモードへ移行

esxcli system maintenanceMode set --enable=yes

メンテナスモードの解除

esxcli system maintenanceMode set --enable=no

メンテナンスモードの状態取得

esxcli system maintenanceMode get

情報取得

他取得したいような情報が見えるコマンド。

サーバー情報

esxcli hardware platform get

UUID取得

esxcli system uuid get

バージョン情報取得

esxcli system version get

CPU情報

esxcli hardware cpu global get
esxcli hardware cpu list

メモリ情報

esxcli hardware memory get

HBAのWWN・リンク速度の確認

すべてのHBA。

esxcli storage san fc list
実機でHBAを見てみると最近はリンク速度がvSphere Clientで表示されないようなので、リンク速度確認は、本コマンドで行う。

特定のHBA。

esxcli storage san fc list --adapter=<vmhba名>

PCI情報

esxcli hardware pci list

搭載カード(NIC、HBA)のドライバ確認

esxcli device driver list

TPM

esxcli hardware trustedboot get
esxcli hardware tpm tag get

まとめ

思い出したら都度追加していきます(´・ω・`)