ESXi の管理コマンドの esxcli には、esxcli というサブコマンドがあります。
「esxcli」 が2回連続しますが、間違いではありません・・・
~ # esxcli esxcli
Usage: esxcli esxcli {cmd} [cmd options]
Available Namespaces:
command Operations to get information about commands.
~ # esxcli esxcli command
Usage: esxcli esxcli command {cmd} [cmd options]
Available Commands:
list This command will list all of the esxcli commands with their
namespace, object, command name and description.
実行すると、下記のような感じで、
esxcli でどのようなコマンドが実行できるのかがわかります。
~ # esxcli esxcli command list | head
Namespace Command
------------------------------------------------------ -----------
esxcli.command list
fcoe.adapter list
fcoe.nic disable
fcoe.nic discover
fcoe.nic list
hardware.bootdevice list
hardware.clock get
hardware.clock set
手元にリファレンスがない場合には、
このポストの冒頭のような感じで esxcli コマンドを
途中のフレーズまで実行してコマンドを探すこともできますが、
「esxcli esxcli command list」の結果を grep することで
コマンドを探す手掛かりにすることもできます。
覚えておくと、どこにもつながらないデータセンタとかで
コマンドを忘れてしまったときなどに、活路を見いだせるかもしれません。
たとえば、「VIB をアップデートするコマンドを思い出せない」
といった場合は、下記のような感じでヒントを探せます。
出力結果から、「esxcli software vib update ~」
で何とかなりそうなことが思い出せます。
~ # esxcli esxcli command list | grep update
software.profile update
software.vib update
esxcli コマンドでできることは、徐々に増えているようです。
たとえば、まず ESXi 5.1 U1 にてコマンドの一覧をファイルに保存して、
# vmware -vl
VMware ESXi 5.1.0 build-1065491
VMware ESXi 5.1.0 Update 1
# esxcli esxcli command list | sort > esxi51u1.txt
そして、ESXi 5.1 U2 でもコマンドの一覧も取得します。
# vmware -vl
VMware ESXi 5.1.0 build-1483097
VMware ESXi 5.1.0 Update 2
# esxcli esxcli command list | sort > esxi51u2.txt
それぞれのファイルを Linux にもってきて diff で比較してみると、
微妙にコマンドが増えています。
※ESXi の diff だとみにくかったので、Linux で diff しています。
[root@linux01 ~]# diff esxi51u1.txt esxi51u2.txt
18a19
> hardware.ipmi.sel clear
236a238,239
> storage.nfs.param get
> storage.nfs.param set
さらに、ESXi 5.5 の esxcli も比較してみます。
# vmware -vl
VMware ESXi 5.5.0 build-1331820
VMware ESXi 5.5.0 GA
# esxcli esxcli command list | sort > esxi55.txt
これも Linux にもってきて diff で比較してみると、
esxcli が ESXi 5.5 ~の新機能にもちゃんと対応していることがわかります。
たとえば VSAN 系のコマンドも追加されていたりします。
中には、「network.vswitch.dvs.vmware.lacp ~」のように
より esxcli らしく構文が修正されているものもあるようです。
※これも、ESXi だとみにくかったので、Linux で diff しています。
ちょっと長いですが・・・
[root@linux01 ~]# diff -b esxi51u2.txt esxi55.txt
1c1
< ------------------------------------------------------ -----------
---
> ------------------------------------------------------ ------------
2a3,4
> device.alias get
> device.alias list
7a10,11
> graphics.device list
> graphics.vm list
19d22
< hardware.ipmi.sel clear
118a122,127
> network.ip.neighbor remove
> network.ip.netstack add
> network.ip.netstack get
> network.ip.netstack list
> network.ip.netstack remove
> network.ip.netstack set
129a139,149
> network.nic.coalesce get
> network.nic.coalesce set
> network.nic.cso get
> network.nic.cso set
> network.nic.eeprom change
> network.nic.eeprom dump
> network.nic.negotiate restart
> network.nic.register dump
> network.nic.selftest run
> network.nic.sg get
> network.nic.sg set
130a151,152
> network.nic.tso get
> network.nic.tso set
136a159
> network.sriovnic.vf stats
140,142c163,167
< network.vswitch.dvs.vmware.lacp.get config
< network.vswitch.dvs.vmware.lacp.get stats
< network.vswitch.dvs.vmware.lacp.get status
---
> network.vswitch.dvs.vmware.lacp.config get
> network.vswitch.dvs.vmware.lacp.stats get
> network.vswitch.dvs.vmware.lacp.status get
> network.vswitch.dvs.vmware.lacp.timeout set
> network.vswitch.dvs.vmware.vxlan get
147,148c172,176
< network.vswitch.dvs.vmware.vxlan.network.mapping list
< network.vswitch.dvs.vmware.vxlan.network.mapping reset
---
> network.vswitch.dvs.vmware.vxlan.network.arp list
> network.vswitch.dvs.vmware.vxlan.network.arp reset
> network.vswitch.dvs.vmware.vxlan.network.mac list
> network.vswitch.dvs.vmware.vxlan.network.mac reset
> network.vswitch.dvs.vmware.vxlan.network.mtep list
181a210
> sched.reliablemem get
273a303,311
> storage.vflash.cache get
> storage.vflash.cache list
> storage.vflash.cache.stats get
> storage.vflash.cache.stats reset
> storage.vflash.device list
> storage.vflash.module get
> storage.vflash.module list
> storage.vflash.module.stats get
> storage.vmfs unmap
280a319,323
> system.coredump.file add
> system.coredump.file get
> system.coredump.file list
> system.coredump.file remove
> system.coredump.file set
301a345,347
> system.security.certificatestore add
> system.security.certificatestore list
> system.security.certificatestore remove
334a381,403
> vsan.cluster get
> vsan.cluster join
> vsan.cluster leave
> vsan.cluster restore
> vsan.datastore.name get
> vsan.datastore.name set
> vsan.maintenancemode cancel
> vsan.network clear
> vsan.network list
> vsan.network remove
> vsan.network restore
> vsan.network.ipv4 add
> vsan.network.ipv4 remove
> vsan.network.ipv4 set
> vsan.policy cleardefault
> vsan.policy getdefault
> vsan.policy setdefault
> vsan.storage add
> vsan.storage list
> vsan.storage remove
> vsan.storage.automode get
> vsan.storage.automode set
> vsan.trace set
ちなみに、ESXi 5.5 で増えた esxcli コマンドは、
具体的には下記で説明されています。
vSphere Command-Line Interface 5.5 Release Notes
https://www.vmware.com/support/developer/vcli/vcli55/vsp5_55_vcli_relnotes.html
ESXi をマイナーバージョンアップしたときにも
esxcli で何か新しいことができないか探してみると
面白いのではないかと思います。
以上、esxcli の esxcli サブコマンドの話でした。