Vmware esxi ssh команды
20.04.2022
itpro
PowerShell, VMWare, Виртуализация
Комментариев пока нет
На хостах VMware ESXi по-умолчанию отключен удаленный доступ к командной строке (консоли сервера) через SSH. Поэтому при подключении к хосту через sshвы получите ошибку: ssh: connect to host 192.168.13.51 port 22: Connection refused . В этой статье мы рассмотрим все способы включения SSH доступа на хостах VMware ESXi.
Перезагрузка ESXI через PowerCli
PowerCLi это дополнительные модули PowerShell, для автоматизации различных сценариев в инфраструктуре ESXI. Первое, что вы должны сделать, это подключиться, к вашему серверу или vCenter. Для этого есть команда:
У вас откроется форма аутентификации, вводите свои данные.
Если все хорошо, то вы увидите, что произошло подключение по 443 порту.
Далее нас интересует командлет Restart-VMHost, именно он отвечает за перезагрузку сервера ESXI. Вводим:
Подтверждаем свои действия. Хочу отметить, что если ваш хост не находится в режиме обслуживания, то вы получите ошибку:
Restart-VMHost : 09.05.2020 0:10:18 Restart-VMHost You cannot perform this operation in the current state. Use Force parameter to force reboot operation.
Если все же нужно перезагрузить хост, который не находится в режиме обслуживания, то добавьте ключ -Force.
Так же вы можете указать конкретный хост для перезагрузки, или несколько через запятую
Дополнительные ключи командлета Restart-VMHost:
- Evacuate - Указывает, что vCenter Server автоматически перерегистрирует виртуальные машины, совместимые для перерегистрации на других хостах кластера. Если они не совместимы, они остаются на перезагруженном хосте. Если есть включенные виртуальные машины, которые нельзя перерегистрировать, операция ожидает, пока они не будут отключены вручную. Параметр Evacuate действителен, только если командлет запущен в системе vCenter Server, а хост находится в кластере с поддержкой DRS.
- RunAsync - Указывает, что команда возвращается немедленно, и не дожидается завершения задачи. В этом режиме вывод командлета является объектом задачи.
- Server - Задает vCenter Server, в котором вы хотите запустить командлет. Если значение этого параметра не задано, команда выполняется на серверах по умолчанию.
Перезагрузка ESXI через System Customization
System Customization - 'это BIOS подобное меню, через которое можно выполнить много задач, одна из таких, это отправление сервера в перезагрузку.
Важно отметить, что данное меню доступно, только при локальном подключении к серверу или через порты управления, например IMM, ILO, IDRAC
При подключении нажимаем F12, для попадания в меню управления сервером.
Далее отправляем хост ESXI в перезагрузку, через клавишу F11.
Начинается процесс перезагрузки.
Включаем SSH на ESXi через vSphere Web Client
Можно включить SSH через веб-интерфейс клиента vSphere Client.
Чтобы включить SSH на хосте ESXi, который подключен к vCenter, нужно:
Обратите внимание, что в настройках хоста есть отдельная вкладка Firewall. Здесь можно ограничить список IP адресов, с которых хосту ESXi разрешено принимать SHSH подключения (по умолчанию список не ограничен).
Перезагрузка ESXI через ssh
Данный метод, так же является очень простым, в виде одной команды, но он подойдет не всем, так как ssh на ESXI хосте по умолчанию выключен из соображений безопасности. Активируем Secure Sell на вашем хосте. Далее подключаемся из любого удобного для вас клиента, я использую mRemoteNG, это такой аналог RDCM (remote desktop connection manager), но для SSH.
Далее вы просто вводите команду:
в течении 15-20 секунд ваш хост ESXI будет отправлен в перезагрузку, ssh подключение будет разорвано.
Включить SSH доступ через консоль DCUI в ESXi
Можно включить SSH на хосте VMware ESXi через интерфейс DCUI сервера. Для этого:
Попробуйте подключиться к вашему хосту ESXi с помощью любого SSH клиента (я использую встроенный ssh клиент Windows):
После подключения к консоли сервера вы можете использовать команды ESXi shell для выполнения различных действия обслуживания или диагностики. Например:
После выполнения действия в консоли ESXi рекомендуется всегда отключить службу SSH.
Методы как перезагрузить ESXI хост
Так же как и в статье, о методах перезагрузки Windows, я хочу начать прежде всего с общими концепциями:
- Самый простой метод перезагрузки гипервизора ESXI, это из веб-интерфейса
- Второй метод, использование ssh консоли
- Третий метод, это PowerCli
- Четвертый метод, топорная перезагрузка через консольное меню.
Перезапуск ESXI через веб-интерфейс
Показывать я все буду на своем тестовом ESXI 6.5. Это пожалуй, самый простой вариант, так как он является кросплатформенным и не требующим ничего кроме браузера, а уж он есть почти в любой операционной системе. Все, что вам нужно, это авторизоваться в любом браузере по адресу:
Далее вы щелкаете правым кликом по пункту "Host" и из контекстного меню выбираете пункт "Reboot".
Выскочит предупреждение, что если вы перед этим не перевели сервер в режим обслуживания "Maintenance mode", то виртуальные машины будут выключены принудительно.
Вас разлогинит из web-интерфейса и вы увидите статус "The host is rebooting"
Перезагрузка хоста через vCenter
Если у вас есть vCenter сервер, то перезапустить хост ESXI можно и через него, для этого выберите нужный хост, откройте его контекстное меню и выберите пункт "Power - Reboot".
Включить SSH доступ на VMware ESXi с помощью PowerShell
Вы можете включить SSH сервер на хосте ESXi с помощью PowerShell командлетов из модуля VMware PowerCLI. Предполагаем, что модуль уже установлен на вашем компьютере (если нет, установите его командой Install-Module -Name VMware.PowerCLI).
Для подключения к хосту ESXi или серверу vCenter выполните команду:
Если на сервере VMware vCenter используется самоподписанный сертификат, перед подключением нужно выполнить команду:
Set-PowerCLIConfiguration -Scope AllUsers -InvalidCertificateAction Warn
Выведитн список всех ESXi хостов, подключенных к этому серверу vCenter и статус SSH службы на них:
Get-VMHost| Get-VMHostService | Where Key -EQ "TSM-SSH" | Select VMHost, Key, Running, Policy
Чтобы включить SSH на определенном ESXi хосте, выполните:
Get-VMHostService -VMHost esxi1 | Where-Object | Start-VMHostService
(Get-VMHost esxi1 |get-view).ExitLockdownMode()
Чтобы включить режим блокировки:
Чтобы отключить службу SSH сразу на всех хостах, воспользуйтесь такой командой PowerShell:
Чтобы отключить на всех ESXi хостах предупреждения при входе по SSH:
Get-VMHost | Get-AdvancedSetting UserVars.SuppressShellWarning |Set-AdvancedSetting -Value 1
Не забудьте корректно завершить PowerShell сессию:
Предыдущая статья Следующая статья
Вам понадобится новое приложение, чтобы открыть эту ссылку Windows Defender
13.04.2022
Alex Kornev
VMWare
Один комментарий
Справочный список полезных консольных команд VMWare ESXi (в том числе ESXCLI), которые часто используется при траблшутинге и тонкой настройке гипервизора. По мере необходимости список команд будет расширяться и обновляется.
Доступные команды консоли ESXi можно посмотреть в каталоге /usr/sbin.
Полный список команд esxcli можно вывести с помощью команды:
esxcli esxcli command list
Для начала команды ESXi, которые вы можете выполнять через ssh доступ.
- reboot — перезагрузить хост
- poweroff — выключить хост
- esxcli system version get — узнать версию (номер) инсталлированной версии VMware ESXi
- uname -a — так же узнать версию VMware ESXi
- vmware –vl – и еще один способ узнать версию и релиз VMware ESXi
- esxcli hardware pci list | more — полная информация об установленных PCI устройствах
- lspci — краткая информация обо всех установленных PCI устройствах
- esxtop — диспетчер процессов top для vmware esxi (быстрые клавиши для переключения дисплея: c :cpu, i :interrupt, m :memory, n :network, d :disk adapter, u :disk device, v :disk VM, p :power mgmt)
- vmkerrcode -l — расшифровка кодов ошибок
- esxcfg-nics -l — информация о сетевых картах
- esxcfg-vswitch -l — информация о виртуальных коммутаторах
- find . -name libstorelib.so — найти файл libstorelib.so
- dcui — работа с консолью сервера через ssh сессию
- chkconfig -l — статус работы демонов
- esxcli hardware memory get — размер установленной памяти
- esxcli software vib list — список установленных vib-пакетов
- esxcli network ip connection list — состояние активных соединений (аналог netstat)
- esxcli storage vmfs extent list — информация о примонтированных/подключенных томах VMFS
- esxcli hardware clock (get/set) — отображение/установка времени esxi-хоста
- cd - Смена текущей директории;
- cp - Копирование файла.cp [файл 1] [файл2];
- find - Поиск файлов по критериям;
- ls - Список файлов и директорий в текущей или явно указанной директории.ls /vmfs/volumes/ ключи: -l подробная информация -a отображение скрытых файлов;
- mkdir — Создание директории;
- mv — Перемещение файла. Переименование файла.mv [путь и имя файла] [путь, куда перемещать];
- ps — Информация о запущенных процессах. ps -ef;
- rm - Удаление файлов;
- shutdown — Выключение или перезагрузка сервера shutdown nowshutdown –r now;
- vi — Текстовый редактор;
- nano — Дружелюбный к новичкам текстовый редактор, отсутствует на ESXi;
- cat — Вывод содержимого файла на экран. cat /etc/hosts;
- more — Вывод содержимого файла на экран, по странице за раз. more /etc/hosts;
- man — Справка по командам man , для некоторых команд помощь выводится при запуске самой команды без параметров;
- useradd — Создание пользователя. useradd ;
- passwd - Задание пароля пользователю passwd ;
- esxcli storage nfs list — список подключеных nfs- хранлилищ на хосте
Команды для работы с виртуальными машинами:
- vim-cmd vmsvc/getallvms — вывод информации обо всех VM
- vim-cmd vmsvc/power.getstate 1 — включена/выключена VM с Vmid 1
- vim-cmd vmsvc/power.on 1 — включить VM с Vmid 1
- vim-cmd vmsvc/power.off 1 — выключить (по питанию) VM с Vmid 1
- vim-cmd vmsvc/power.reset 1 — перезагрузка (аналогично нажатию клавиши RESET на реальном сервере) VM с Vmid 1
- vim-cmd vmsvc/power.shutdown 1 — корректное выключение VM с Vmid 1. Действует только, если установлены VMware Tools!
- vim-cmd vmsvc/power.reboot 1 — перезагрузка VM с Vmid 1. Действует только, если установлены VMware Tools!
- vim-cmd vmsvc/get.summary 1 — получение полной информации о VM с Vmid 1.
- vim-cmd vmsvc/get.summary 1 | egrep ‘(name|power|ip)’ — получение отфильтрованной информации о VM с Vmid 1. Выводится имя, состояние питания, IP-адрес
Набрав эту команду, вы увидите все возможные варианты ее использования. Ниже список команд, которые мне показались полезными:
09.10.2019
itpro
VMWare
комментариев 7
Иногда сталкиваюсь с тем, что определенная виртуальная машина на хосте VMWare ESXi зависает и ее нельзя никаким средствами выключить или перезагрузить из веб-интерфейса клиента vSphere. Перезагружать целиком ESXi сервер из-за одной виртуальной машины – не совсем целесообразно (особенно, если у вас всего один ESXi хост, или оставшиеся сервера в DRS кластере не потянут дополнительной нагрузки в виде виртуальных машин с перезагружаемого сервера). Рассмотрим основные способы принудительной остановки зависшей виртуальной машины в VMWare ESXi.
Если процесс виртуальной машины на сервере ESXi завис, она перестает реагировать на команды Reset / Power Off, и на любое действие выдает одну из ошибок:
-
The attempted operation cannot be performed in the current state ;
В таких случаях вы можете вручную остановить процесс виртуальной машины на хосте ESXi из командной строки ESXi Shell или PowerCLI.
Сначала определите на каком ESXi хосте запушена зависшая виртуальная машина. Для этого в интерфейсе vSphere Client найдите ВМ. Имя хоста, на котором она запущена, указано на вкладке Summary в секции Related Object -> Host.
Щёлкните по имени хоста ESXi. Вам нужно разрешить доступ к нему по протоколу SSH. Перейдите в Configure -> Services -> SSH -> Start.
Теперь вы можете подключиться к этому ESXi хосту через SSH с помощью клиента putty.
Выведем список ВМ, запушенных на хосте ESXi:
esxcli vm process list
Скопируйте идентификатор нужной виртуальной машины (World ID).
Чтобы завершить процесс зависшей виртуальной машинына хосте ESXi используется следующая команда:
esxcli vm process kill --type=[soft,hard,force] --world-id=WorldNumber
Как вы видите, есть три типа завершения процесса ВМ:
- Soft – самый безопасный способ завершить VMX процесс (похож на kill -SIGTERM);
- Hard – немедленное завершение процесса ВМ (kill -9);
- Force – самый жесткий режим завершения процесса, должен использоваться в последнюю очередь, если ничего другое не помогает.
Убедитесь, что для ВМ нет активных заданий по созданию снапшотов, бэкапов, и подобных операций, а у ВМ нет статуса Virtual Machine disks consolidation is needed. Иначе вы можете сломать свою ВМ и ее придется восставливать из бэкапа.
Попробуем мягко остановить ВМ с указанным ID:
esxcli vm process kill --type=soft -w=25089429
ВМ должна выключиться.
Вы можете остановить зависшую виртуальную машину с помощью PowerCLI (это удобно, т.к. при подключении к vCenter вам не нужно искать хост, на котором запушена ВМ и включать SSH доступ). Проверим, что ВМ запушена:
get-vm “web2" | select name,PowerStates
Принудительно остановите процесс ВМ командой:
stop-vm -kill "web2" -confirm:$false
Также вы можете остановить зависшую виртуальную машину с помощью утилиты ESXTOP.
В SSH сесиии введите команду esxtop, затем нажмите “c” для отображения ресурсов CPU и shift + V, чтобы отображать только процессы вириальных машин
Затем нажмите “f” (выбрать отображаемы поля), “c” (отобразить поле LWID- Leader World Id) и нажмите Enter.
В столбце Name найдите виртуальную машину, которую нужно остановить, и определите номер ее LWID по соответствующему столбцу.
Затем осталось нажать кнопку «k» (kill) и набрать LWID идентфикатор той виртуальной машины, которую нужно принудительно выключить.
Последний способ жёсткого выключения виртуальной машины – воспользоваться утилитой kill. Такой способ позволит остановить не только ВМ, но и все дочерние процессы.
Получим ID родительского процесса ВМ:
kill -9 24288474
После такого “hard reset”, установленная ОС запустится в режиме восстановления. В случае гостевой Windows, скрин будет выглядеть так.
Предыдущая статья Следующая статья
Как расширить диск виртуальной машины в VMWare
Установка VMware Tools на Debian, Ubuntu и CentOS
Сжимаем тонкий (thin) диск в ESXi 5
Создаем собственные правила файервола в ESXi 5.0
+5 Спасибо, очень помог!
А нет ли лекарства, чтобы виртуалки не зависали таким образом ? На сервере крутится единственная включенная вируталка с win2008r2/sql2008r2. Виснет она строго по ночам, без каких либо выявленных закономерностей: может месяцами не виснуть, может 2 раза за ночь. Достало просыпаться по ночам и перезагружать.
Странно — у меня баг с зависанием виртуальной машиной на ESXi встречался не столько часто…
Возможно стоит для начала обновить версию до последней версию ESXi и VMtools на гостевой ОС.
Если ничего не поможет — придется прикручивать какой-нибудь костыль в виде скрипта, периодически запускающегося на хосте ESXi и проверяющий доступность определенного сервиса на виртуалке (хотя бы тем же telnet-ом). Если сервис не отвечает — выполняем скрипт перезапуска виртуалки (по мотивам этого мануала)
Спасибо за инфу!
У меня были случаи подвисания виртуальных машин с Linux, Windows и FreeBSD — так что решение, похоже, не универсальное. Скорее тут какой-то глюх самого ESXi.
В любом случае по результатам, пожалуйста, отпишитесь…
К сожалению не помогла заплатка. зависания всё равно случаются.
Может память или ядра неправильно распределены?
Я заметил что бывают торможения всех виртуалок и начал оставлять запас по мощности.
Всем привет сегодня сделаю для себя заметку список команд ESXI, которая будет пополняться по мере поступления новых команд. Сюда же будут выкладываться ссылки на скрипты powercli. Бывают ситуации, что у вас не очень производительный интернет, а выполнить работу по настройке или мониторингу ESXI хоста вам необходимо, данный вариант будет идеален, плюс в консоли вы можете сделать больше, чем через графический интерфейс.
Для начала команды ESXi, которые вы можете выполнять через ssh доступ. Как включить ssh на ESXI читайте тут.
- reboot — перезагрузить хост
- poweroff — выключить хост
- esxcli system version get — узнать версию (номер) инсталлированной версии VMware ESXi
- uname -a - так же узнать версию VMware ESXi
- esxcli hardware pci list | more — полная информация об установленных PCI устройствах
- lspci — краткая информация обо всех установленных PCI устройствах
- esxtop — диспетчер процессов top для vmware esxi ( быстрые клавиши для переключения дисплея: c:cpu, i:interrupt, m:memory, n:network, d:disk adapter, u:disk device, v:disk VM,p:power mgmt)
- vmkerrcode -l — расшифровка кодов ошибок
- esxcfg-nics -l — информация о сетевых картах
- esxcfg-vswitch -l — информация о виртуальных коммутаторах
- find . -name libstorelib.so - найти файл libstorelib.so
- dcui — работа с консолью сервера через ssh сессию
- chkconfig -l — статус работы демонов
- esxcli hardware memory get — размер установленной памяти
- esxcli software vib list — список установленных vib-пакетов
- esxcli network ip connection list — состояние активных соединений (аналог netstat)
- esxcli storage vmfs extent list — информация о примонтированных/подключенных томах VMFS
- esxcli hardware clock (get/set) — отображение/установка времени esxi-хоста
Команды для работы с виртуальными машинами:
- vim-cmd vmsvc/getallvms — вывод информации обо всех VM
- vim-cmd vmsvc/power.getstate 1 — включена/выключена VM с Vmid 1
- vim-cmd vmsvc/power.on 1 — включить VM с Vmid 1
- vim-cmd vmsvc/power.off 1 — выключить (по питанию) VM с Vmid 1
- vim-cmd vmsvc/power.reset 1 — перезагрузка (аналогично нажатию клавиши RESET на реальном сервере) VM с Vmid 1
- vim-cmd vmsvc/power.shutdown 1 — корректное выключение VM с Vmid 1. Действует только, если установлены VMware Tools!
- vim-cmd vmsvc/power.reboot 1 — перезагрузка VM с Vmid 1. Действует только, если установлены VMware Tools!
- vim-cmd vmsvc/get.summary 1 — получение полной информации о VM с Vmid 1.
- vim-cmd vmsvc/get.summary 1 | egrep ‘(name|power|ip)’ — получение отфильтрованной информации о VM с Vmid 1. Выводится имя, состояние питания, IP-адрес
- esxcli vm process list — получить список ВМ с их World ID
- esxcli vm process kill —type=[soft,hard,force] —world-id=WorldID — убиваем разными способами ВМ с нужным WorldID (помогает от зависших и не отвечающих VM)
Набрав эту команду, вы увидите все возможные варианты ее использования.Ниже список команд, которые мне показались полезными:
Читайте также: