どうも、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を参考にしました。
事前作業
インストール後、マネジメントの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アドレス>
確認
esxcli network ip dns server list
ドメイン検索の設定
ドメイン検索の追加・削除
ドメイン検索追加。
esxcli network ip dns search add --domain <ドメイン名>
ドメイン検索削除
esxcli network ip dns search remove --domain <ドメイン名>
確認
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
確認
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=<仮想スイッチ名>
仮想スイッチの削除。
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>
チーミング・フェイルオーバー設定のオーバーライド(ロードバランシング)
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
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 <現在のデータストア名> <変更後のデータストア名>
データストアの一覧
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。
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
まとめ
思い出したら都度追加していきます(´・ω・`)