Источник: Major Enhancements in esxcli for vSphere 5
Команда esxcli в VMware vSphere 5 претерпела значительное обновление по сравнению с версией VMware vSphere 4.1, в которой было только 6 основных namespaces и 43 команды.
Namespace | Description |
---|---|
corestorage | VMware core storage commands |
network | VMware networking commands |
nmp | VMware Native Multipath Plugin (NMP) This is the VMware default implementation of the Pluggable Storage Architecture |
swiscsi | VMware iSCSI commands |
vaai | Vaai Namespace containing vaai code |
vms | Limited Operations on Virtual Machines |
С последним релизом vSphere 5, esxcli теперь включает в общей сложности 10 namespaces и 251 команду! Некоторые пространства имен (англ. namespaces), из vSphere 4.1, такие как corestorage, теперь располагаются под новым пространством имен storage, который содержит в себе и другие пространства имен, имеющие отношение к storage стеку.
Namespace | Description |
---|---|
esxcli | Commands that operate on the esxcli system itself allowing users to get additional information |
fcoe | VMware FCOE commands |
hardware | VMKernel hardware properties and commands for configuring hardware |
iscsi | VMware iSCSI commands |
license | Operations pertaining to the licensing of vmware and third party modules on the ESX host. These operations currently only include updating third party module licenses |
network | Operations that pertain to the maintenance of networking on an ESX host. This includes a wide variety of commands to manipulate virtual networking components (vswitch, portgroup, etc) as well as local host IP, DNS and general hsot networking settings |
software | Manage the ESXi software image and packages |
storage | VMware storage commands |
system | VMKernel system properties and commands for configuring properties of the kernel core system |
vm | A small number of operations that allow a user to Control Virtual Machine operations |
Для получения полного списка доступных команд esxcli в VMware vSphere 5 вы можете выполнить следующую команду:
# esxcli esxcli command list
Основной целью esxcli является предоставление централизованного, удобного и легкого доступа к управлению хостами ESXi, как локально, в пределах ESXi Shell, так и удаленно, с помощью vCLI или vMA. С выходом vSphere 5.0 большинство функций команд esxcfg-*/vicfg-* были перенесены в esxcli. В недалеком будущем esxcli приобретет полный набор функций, и команды esxcfg-*/vicfg-* попросту устареют и будут удалены. В том числе, устареют и будут удалены утилиты esxupdate и vihostupdate.
Новая версия esxcli для удаленного управления совместима как с ESXi 5, так и с ESX(i) 4.1 хостами. При подключении к хосту VMware ESXi с использованием esxcli, хост автоматически выдаcт список поддерживаемых namespaces. Новые namespaces, реализованные в ESXi 5, не будут доступны на хосте 4.1, но при этом прежние namespaces (4.1) будут доступны. В последней версии esxcli, vSphere API по прежнему скрыт. Поэтому, для того чтобы получить доступ к esxcli (имеется в виду из скриптов), вам по-прежнему нужно использовать локальный (local) esxcli, либо vCLI, vMA или PowerCLI's esxcli командлеты для удаленного использования.
Синтаксис esxcli очень прост для понимания:
Чтобы получить более подробную информацию о пространстве имен, вам просто нужно указать опцию --help после нужного вам пространства имен. На диаграмме ниже наглядно показано, как с помощью опции --help можно получить справочную информацию. В данном случае мы получаем список дополнительных namespaces для пространства имен "network".
Для того, чтобы получить более детальную информацию о пространстве имен "firewall" можно также воспользоваться опцией --help.
Теперь, когда у нас есть список команд (для фаервола см. скриншот выше), мы можем попробовать выполнить какую-либо из них. Пусть этой командой будет "get".
Как вы уже могли догадаться, команда "get" выдает текущий статус межсетевого экрана (firewall). В основном, многие команды интуитивно понятны. Вы увидите, что большинство esxcli namespaces поддерживают команды get, set и list. Другой приятной вещью в esxcli является совместимый результирующий вывод. Это относится как к локальному, так и к удаленному применению. Теперь скрипты писать будет проще.
Вы так же имеете возможность контролировать тип вывода, который генерирует команда esxcli. В качестве типа вы можете выбрать: XML, CSV или ключ-значение (key-value). Чтобы esxcli начала выдавать результат своей работы в нужном нам формате, необходимо в параметре --formatter указать соответствующий тип. Пара xml и ключ-значение работает для всех пространств имен, а csv не для всех, но для большинства.
Итак, для примера давайте выполним предыдущую команду (esxcli network firewall get), только на этот раз изменим тип результирующего вывода на пару ключ-значение.
# esxcli --formatter=keyvalue network firewall get
Firewall.DefaultAction.string=DROPFirewall.Enabled.boolean=falseFirewall.Loaded.boolean=true
В дополнение к типу формата вы можете отображать только определенные, нужные вам столбы, используя для этого --format-param.
Вот пример того, как выглядит список Standard vSwitches без форматирования:
# esxcli network vswitch standard list vSwitch0 Name: vSwitch0 Class: etherswitch Num Ports: 128 Used Ports: 6 Configured Ports: 128 MTU: 1500 CDP Status: listen Beacon Enabled: false Beacon Interval: 1 Beacon Threshold: 3 Beacon Required By: Uplinks: vmnic1, vmnic0 Portgroups: ESXSecretAgentNetwork, VM Network, vmk2, vmk1,
Management Network vSwitch1 Name: vSwitch1 Class: etherswitch Num Ports: 128 Used Ports: 3 Configured Ports: 128 MTU: 1500 CDP Status: listen Beacon Enabled: false Beacon Interval: 1 Beacon Threshold: 3 Beacon Required By: Uplinks: vmnic2 Portgroups: VMkernel
Вот этот же пример, но на этот раз отображается только: Имя, Количество Портов, MTU, CDP и Порт-группа. Это достигается за счет использования formatter и format-param параметров:
# esxcli --formatter=csv --format-param=fields="Name,Num Ports,MTU,CDP,
Portgroups" network vswitch standard list Name,NumPorts,MTU,Portgroups, vSwitch0,128,1500,"ESXSecretAgentNetwork,VM Network,vmk2,vmk1,
Management Network,", vSwitch1,128,1500,"VMkernel,",
Для получения дополнительной информации вы можете обратиться к официальному документу:
Также вы можете прочитать предыдущий мой пост на эту же тему New Command-Line Interface.