Наиболее полезные команды ESXCLI для вашей среды VMware

Вы можете использовать vSphere Client, графический интерфейс, предоставленный VMware, и веб-клиент VMware vSphere Web/HTML5 Client, который основан на веб-технологиях, для управления хостами ESXi и вашей средой VMware. Хотя большинство настроек доступны в графическом интерфейсе, вам иногда может потребоваться получить информацию или изменить конфигурацию, которая не отображается в графическом интерфейсе.

В этом случае вам понадобится интерфейс командной строки (CLI) или “консоль”, который позволяет настраивать все параметры, включая скрытые. Помимо традиционных команд, которые одинаковы в Linux и ESXi, у ESXi есть собственные команды ESXCLI.

Этот блог был создан в формате каталога, перечисляющего полезные команды ESXCLI, которые являются частью команд оболочки ESXi.

Как открыть консоль ESXi Shell

По умолчанию оболочка ESXi отключена для локального и удаленного доступа. Это означает, что вы не можете запускать команды оболочки ESXi, пока не включите оболочку ESXi или доступ SSH. VMware налагает это ограничение из соображений безопасности.

Давайте рассмотрим три основных способа включения интерфейса командной строки в ESXi.

Включение доступа к консоли с использованием стандартного интерфейса ESXi

Этот метод используется, когда у вас есть физический доступ к хосту ESXi, включая монитор и клавиатуру хоста.

  1. В интерфейсе прямой консоли пользователя (DCUI) ESXi перейдите в пункт Параметры устранения неполадок, перейдите к строкам Включить оболочку ESXi и Включить SSH и нажмите клавишу Enter, чтобы включить каждую опцию.
  2. После включения оболочки ESXi нажмите Alt+F1, чтобы открыть консоль на машине, запущенной под управлением ESXi. После этого вам следует ввести свои учетные данные для входа (можно использовать учетные данные пользователя root).
  3. Вы можете выполнять команды оболочки ESXi.
  4. Если вам нужно вернуться к ESXi DCUI, нажмите Alt+F2. Опция Включить SSH позволяет открывать консоль ESXi удаленно с использованием клиента SSH.

Включение доступа к консоли с помощью клиента VMware Host

  1. Откройте веб-браузер и введите IP-адрес вашего хоста ESXi в адресной строке, затем выполните вход.
  2. Перейдите в Хост > Действия > Службы и щелкните Включить защищенную оболочку (SSH) , чтобы включить доступ через SSH до перезагрузки ESXi.

    Точно так же можно включить консольную оболочку на локальном хосте ESXi в меню Службы . Перейдите в Управление > Службы. Щелкните правой кнопкой мыши на службе TSM-SSH. Нажмите Политика > Запускать и останавливать с хостом, чтобы включить доступ через SSH даже после перезагрузки ESXi.

  3. Теперь вы можете подключиться к консоли ESXi, используя ваш SSH-клиент удаленно.

Активация доступа к консоли с использованием vCenter и клиента VMware vSphere

Этот метод можно использовать, если ваш хост ESXi управляется сервером vCenter.

  1. Войдите в VMware HTML5 vSphere Client в веб-браузере.
  2. Перейдите в Хосты и кластеры и выберите ваш хост ESXi.
  3. Выберите вкладку Настроить, откройте Система > Службы, и щелкните SSH в списке служб.
  4. Нажмите Начать, чтобы запустить сервер SSH один раз, или нажмите Изменить политику запуска и выберите Запускать и останавливать с хостом, если вы хотите включить сервер SSH на продолжительное время. Вы также можете включить оболочку ESXi в меню Сервисы.

После включения доступа по SSH вы сможете подключиться к хосту ESXi удаленно с помощью клиента SSH и выполнять команды ESXCLI.

Подключение по SSH

Для подключения к консоли ESXi удаленно через SSH выполните следующие действия в консоли Linux.

  1. Выполните команду, например:

    ssh 192.168.101.221

    или

    ssh [email protected]

    где 192.168.101.221 – это IP-адрес сервера ESXi, использованный в этом примере.

  2. Вам нужно будет ввести имя пользователя и пароль пользователя ESXi (root можно использовать как административного пользователя по умолчанию на ESXi).

Аналогично, вы можете подключиться с одного хоста ESXi к другому через SSH в командной строке.

В Windows вы можете использовать PuTTY:

  1. Откройте PuTTY
  2. Введите IP-адрес и порт хоста ESXi.
  3. Нажмите Открыть, чтобы подключиться к хосту ESXi через SSH.

Подключение к хосту ESXi через SSH и удаленное выполнение команд ESXCLI – наиболее распространенный и безопасный подход.

Как установить ESXCLI в Linux

Альтернативный способ удаленного выполнения команд ESXCLI – установка ESXCLI в Linux. Для этого должен быть установлен Python. Ниже приведены основные шаги по установке ESXCLI в Linux:

  1. Сделайте резервную копию вашей Linux-машине перед внесением изменений в систему.
  2. Скачайте ESXCLI с сайта VMware
  3. Извлеките содержимое загруженного архива esxcli-8.0.0-22179150.tgz (запустите от имени root):

    tar zxf esxcli-8.0.0-22179150.tgz -C /opt/vmware

  4. Запустите установщик ESXCLI с помощью команды:

    python setup.py install

  5. Попробуйте подключиться к хосту ESXi и выполнить команду ESXCLI удаленно:

    esxcli --server IP_адрес_ESXI --help

    Вы получите ошибку, потому что ESXi требует доверительных отношений между хостами:

    Ошибка сертификата. Отпечаток 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 (недоверенный)

  6. Для исправления этой проблемы выполните команду, указав имя пользователя, пароль и отпечаток, отображаемый в предыдущем сообщении об ошибке:

    esxcli --server 192.168.101.101 --username root --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. Сертификат хранится в /etc/vmware/ssl/rui.crt на хосте ESXi.

Обзор команд ESXCLI

ESXCLI, часть оболочки ESXi, представляет собой средство командной строки для управления виртуальной инфраструктурой (компонентами ESXi, такими как оборудование, сеть, хранилище и т. д.) и управления самим ESXi на низком уровне. Технически ESXCLI – это сценарий на языке Python (/bin/esxcli.py в ESXi). Все команды ESXCLI должны выполняться в оболочке ESXi (консоли). Обычно команда esxcli предоставляет широкий список подкоманд, называемых пространствами имен, и их параметров. Команда esxcli присутствует сразу после установки ESXi, наряду с другими командами оболочки ESXi.

Вы можете найти esxcli и изучить характер ESXCLI после выполнения следующих команд:

which esxcli

ls -l /sbin/esxcli

Как можно убедиться, проверив вывод консоли, ESXCLI – это сценарий, написанный на языке Python, расположенный в каталоге /sbin/. Если вы хотите увидеть содержимое сценария, вы можете использовать встроенный текстовый редактор vi.

Основным синтаксисом ESXCLI является следующий:

esxcli [параметры] {пространство имен}+ {команда} [параметры команды]

Таким образом, ESXCLI состоит из ветвей, которые являются основными категориями (пространствами имен) команд ESXCLI. Обратите внимание, что команды esxcli чувствительны к регистру, аналогично другим командам консоли, используемым в ESXi. Полный список всех доступных пространств имен и команд ESXCLI отображается после выполнения команды:

esxcli esxcli command list

Список доступных команд ESXCLI зависит от версии ESXi. Новые команды могут быть добавлены.

Следовательно, список основных пространств имен ESXCLI для ESXi 8.0 выглядит следующим образом:

  • устройство – команды менеджера устройств
  • esxcli – команды, связанные с самим ESXCLI
  • fcoe – команды Fibre Channel over Ethernet
  • графика – команды графики VMware
  • аппаратное обеспечение – команды для проверки аппаратных свойств и настройки аппаратного обеспечения
  • iscsi – команды VMware iSCSI
  • сеть – этот пространство имен включает широкий спектр команд для управления общими сетевыми настройками хоста (например, IP-адрес, настройки DNS хоста ESXi, брандмауэр) и виртуальными сетевыми компонентами, такими как vSwitch, группы портов и т. д.
  • nvme – управление расширениями для драйвера VMware NVMe
  • rdma – команды для управления стеком протокола удаленного прямого доступа к памяти
  • планирование – команды, используемые для настройки планирования и свойств системы VMkernel
  • программное обеспечение – управление образами и пакетами программного обеспечения для ESXi
  • хранилище – команды, используемые для управления хранилищем
  • система – команды для настройки свойств системы VMkernel, ядра системы и служб системы
  • вм – некоторые команды, которые могут использоваться для управления операциями виртуальной машины
  • 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, чтобы проверить команды для пространства имен виртуальной машины.

Файл журнала 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 система приветствия set -m="Добро пожаловать в NAKIVO! Нажмите F2"

  • Проверьте, установлено ли приветственное сообщение:

    esxcli система приветствия get

Команды сети ESXCLI

Пространство имен сети – одно из самых больших пространств имен ESXCLI. Давайте рассмотрим команды, которые могут быть полезны для диагностики.

  • Проверьте статус активных сетевых подключений:

    esxcli network ip connection list

  • Просмотр списка установленных сетевых адаптеров:

    esxcli network nic list

  • Отображение информации о сетевых интерфейсах:

    esxcli network ip interface list

  • Отображение информации об IP-адресах сетевых интерфейсов, присутствующих на сервере:

    esxcli network ip interface ipv4 get

  • Отобразить информацию о сети для ВМ:

    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

Как проверить SMART в ESXCLI

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.

  1. Сначала перечислите все устройства хранения и найдите уникальное имя устройства (см. скриншот ниже):

    esxcli storage core device list

  2. Затем используйте команду для получения данных 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 имя_адаптера

    esxcli storage core adapter rescan -A имя_адаптера

Вместо -A имя_адаптера вы можете пересканировать все адаптеры, используя опцию --all.

Проверка списка программных VIB для ESXi

Программные пакеты, предназначенные для ESXi, обычно распространяются в виде файлов VIB (пакеты установки vSphere). Файл VIB похож на контейнер с запакованными пакетами, которые могут быть установлены в системе, с описанием и файлом подписи. В свою очередь, VIB обычно распространяются в виде файлов, упакованных в архивный файл в стандартном формате ZIP. Вам может потребоваться включить VIB в образ ESXi для использования соответствующего оборудования или установить VIB в существующую систему для применения патча безопасности.

  • Вы можете просмотреть список установленных пакетов VIB на вашем хосте ESXi:

    esxcli software vib list

  • Вы можете установить VIB с помощью ESXCLI (хост ESXi должен быть в режиме обслуживания):

    esxcli software vib install -d /vmfs/volumes/datastore1/patches/имя_патча.zip

Управление операциями ВМ в ESXCLI

Пространство имен vm можно использовать для операций с процессами запущенных виртуальных машин.

  • Проверьте список запущенных ВМ и отобразите их идентификаторы мира:

    esxcli vm process list

Вы можете завершить работу неотзывчивой виртуальной машины с помощью команд оболочки ESXi. Использование ESXCLI в этом случае может быть полезным, когда ВМ не удается выключить с помощью графического интерфейса, такого как GUI клиента VMware vSphere, клиента VMware Host или VMware Workstation.

  • Выключите ВМ, используя идентификатор мира, отображаемый в выводе команды esxcli vm process list. В текущем примере идентификатор мира необходимой ВМ – 75498.

    esxcli vm process kill -w 75498 -t soft

  • Если тип команды soft не оказался полезным, рассмотрите возможность выполнения немедленного выключения ВМ с помощью метода hard.

    esxcli vm process kill -w 75498 -t hard

Для команды kill доступны три варианта команд:

  • soft – правильный сигнал отправляется в гостевую операционную систему для корректного завершения работы ВМ
  • hard – ВМ немедленно выключается
  • Принудительное отключениеВМ отключается аналогично тому, как компьютер отключается при отсоединении кабеля питания. Используйте этот тип отключения ВМ только в том случае, если предыдущие два типа были неудачными.

Другие полезные команды оболочки ESXi

Помимо команд ESXCLI, вы можете использовать множество команд оболочки ESXi:

  • Откройте DCUI ESXi из консоли (цвета отличаются, когда вы подключаетесь к оболочке ESXi через SSH):

    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 – виртуальный компьютер с диском

    P – управление питанием

  • Найдите файл в текущем каталоге:

    <код>find . -name filename.txt

  • Замените символы . на имя директории, в которой вы хотите найти файл, и замените filename.txt на имя вашего файла. Например, если вы хотите найти файл diskname.vmdk в директории /vmfs/volumes/, выполните команду:

    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, расположенные в директории sbin:

    ls /usr/sbin

Создание нового пользователя

Наличие как минимум двух методов создания нового пользователя ESXi с использованием команд ESXi shell.

Команда ESXi adduser

  • Если ввести команду adduser в консоли ESXi, вы получите сообщение:

    -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:

esxcli system account add -d="NAKIVO user" -i="nakivo" -p="Password-Test321" -c="Password-Test321"

Где:

-d означает отображаемое описание

-p – это пароль, установленный для нового пользователя

-c – это подтверждение пароля

Какой метод выбрать для создания нового пользователя в командной строке? Одиночная команда, используемая во втором методе, может показаться удобной, но не с точки зрения безопасности. Если вы помните, то после входа в оболочку ESXi отображалось предупреждение:

Все команды, выполняемые в оболочке ESXi, регистрируются и могут быть включены в пакеты поддержки. Не указывайте пароли непосредственно в командной строке. Большинство инструментов могут запрашивать секреты или принимать их из стандартного ввода.

Если безопасность является вашим приоритетом, используйте команды, не включая пароли в виде обычного текста в самих командах. Если пароль требуется, обычно он запрашивается и может быть введен в стандартном консольном вводе. Например, если вы хотите создать нового пользователя с помощью ESXCLI, используйте команду, как показано ниже:

esxcli system account add -d="user2" -i="user2" -p -c

Отдельно будет запрошен пароль ESXi, и при вводе пароля он не будет отображаться в консоли.

Заключение

Существуют команды консоли VMware для управления системными компонентами, сетью, хранилищем, программным обеспечением VIB и виртуальными машинами. Использование интерфейса командной строки в ESXi дает вам больше возможностей, кроме удобных графических пользовательских интерфейсов VMware vSphere Client и VMware Host Client.

Вы можете использовать команды ESXi shell локально и команды ESXi SSH удаленно для просмотра и настройки параметров, которые скрыты или недоступны в графическом интерфейсе. Используйте список команд ESXi, предоставленный в этом посте блога, для точной настройки ESXi и испытайте дополнительную мощь использования интерфейса командной строки в VMware vSphere.

Вы можете узнать больше, прочитав о PowerCLI, другом типе интерфейса командной строки для управления VMware vSphere из Windows PowerShell.

Source:
https://www.nakivo.com/blog/most-useful-esxcli-esxi-shell-commands-vmware-environment/