http://xeon.at.ua/publ/spravochnye_materialy/esxi_ssh_cli/6-1-0-359
Большинство операций с виртуальной инфраструктурой производятся из графического интерфейса клиента vSphere. Однако и командная строка может нам пригодиться:
- для некоторых операций, которые не возможны из графического интерфейса;
- для автоматизации действий с помощью сценариев;
- для диагностики и решения проблем;
У нас есть несколько способов для получения интерфейса командной строки к серверу ESX(i):
- локальная командная строка, доступная с локальной консоли или через iLO/IP KVM;
- сессия SSH к ESX(i);
- vSphere CLI;
Если на локальной консоли сервера ESX нажать Alt+F1, ввести имя пользователя root и пароль, то вы попадете в командную строку. Это командная строка Service Console, модифицированного Red Hat Enterprise Linux 5. Это означает, что в этой командной строке работают все или большинство стандартных команд Linux.Обратите внимание на то, что команды и ключи регистрозависимы.На своем компьютере запустите клиент SSH, например PuTTY. Подключитесь к серверу ESX. Вам будет необходимо войти в систему, но пользователем root сделать это по SSH нельзя – так по умолчанию настроен сервер SSH на ESX. Вариантов два:
- создать непривилегированного пользователя и входить в систему с его учетными данными;
- разрешить вход с учетными данными пользователя root;
- Дополнительного пользователя вы можете создать на этапе установки ESX;
- Из клиента vSphere, подключенного напрямую к ESX. Home=>Inventory=>выделите сервер=>закладка Users and Groups в контекстном меню выберите Add. Чтобы пользователь мог заходить по SSH, установите флажок Grant shell access;
- Из командной строки, командами useradd и passwd;
- Ввести сервер в домен Active Directory и авторизовываться учетными записями AD;
Когда у вас есть дополнительный пользователь, вы можете входить под ним в систему при подключении по SSH. После этого выполните команду
su – |
и введите пароль пользователя root. В результате вы получаете привилегии root.Если же вы приняли решение просто разрешить пользователю root авторизацию по SSH, то потребуется отредактировать конфигурационный файл сервера SSH
nano /etc/ssh/sshd_config |
Найдите строку
После этого перезапустите службу SSH командой
service sshd restart |
В состав Service Console входят некоторые специфичные для ESX команды.Список большинства из них вы можете получить, набрав в командной строке
esxcfg- |
VMware не рекомендует открывать доступ к командной строке и SSH для ESXi – из общих соображений безопасности. Однако если вы приняли решение пренебречь этой рекомендацией, сделать это несложно.Для доступа в командную строку в локальной консоли ESXi эта возможность должна быть разрешена. В интерфейсе клиента vSphere сделать это можно, пройдя
- Configuration=>Security Profile=>Properties=>Local Tech Support;
- Через локальное БИОС-подобное меню также можно открыть доступ к локальной командной строке, пройдите Troubleshooting Options=>Enable Local Tech Support;
После нажатия Enter название пункта меню должно поменяться на Disable Local Tech Support – это значит, что локальная командная строка включена, а этим пунктом ее можно отключить обратно.
Так или иначе разрешив доступ к локальной командной строке, нажмите Alt+F1 и авторизуйтесь.
Вы вошли в локальную консоль.
Включение SSH выполняется точно так же (в БИОС-подобном меню или в пункте настроек Security Profile), только теперь вас интересует пункт Remote Tech Support. Теперь вы можете подключаться по SSH.
В состав ESXi входит маленький дистрибутив Linux под названием Busybox. Основные команды Linux в нем работают.
Подсмотреть прочие доступные для Busybox команды можно, выполнив:
/usr/bin/busybox |
Ниже список стандартных команд:
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 <имя пользователя>; |
В состав ESXi входят некоторые из команд, специфичных для ESX(i). Список большинства из них вы можете получить, набрав в командной строке
esxcfg- |
и два раза нажав Tab.
Список специфичных команд на ESXi меньше, чем на ESX. Для ESXi следует пользоваться vSphere CLI, в состав которых входит большее количество команд.
Впрочем, в составе ESXi существуют некоторые специфические инструменты.
vim-cmd vmsvc |
Набрав эту команду, вы увидите все возможные варианты ее использования.
Ниже список команд, которые мне показались полезными:
vim-cmd vmsvc /power .getstate <vmid> #вы узнаете статус питания виртуальной машины с указанным ID. Увидеть список ВМ и их ID вы можете при помощи команды; vim-cmd vmsvc /getallvms #Выключить питание виртуальной машины; vim-cmd vmsvc /power .off vmid #Включить питание виртуальной машины; vim-cmd vmsvc /power .on vmid #Перезагрузить виртуальную машину; vim-cmd vmsvc /power .reboot vmid #Удалить файлы виртуальной машины; vim-cmd vmsvc /destroy vmid #Удалить файлы виртуальной машины; vim-cmd vmsvc /power . shutdown <vmid> #Выключение виртуальной машины (shutdown guest); vim-cmd vmsvc /power .reset <vmid> #Перезагрузка виртуальной машины; vim-cmd vmsvc /get .summary <vmid> #Общая информация о виртуальной машине; vim-cmd solo /registervm /vmfs/vol/datastore/dir/vm .vmx #Подключить виртуальную машину; vim-cmd vmsvc /unregister vmid #Убрать виртуальную машину из гипервизора; vim-cmd vmsvc /tools . install vmid #Установка vmware tools; vim-cmd hostsvc /net/info #информация о сети гипервизора; vim-cmd hostsvc /maintenance_mode_enter #Переключить хост в режим обслуживания; vim-cmd hostsvc /maintenance_mode_exit #Выйти из режима обслуживания; chkconfig -l #Показать службы запущенные на гипервизоре; esxtop #Список процессов; vmkerrcode -l #посмотреть vmkernel ошибки; esxcfg-info #Посмотреть информацию о хосте; esxcfg-nics -l #Посмотреть информацию о сетевых адаптерах; esxcfg-vswitch -l #Посмотреть информацию о виртуальных сетевых адаптерах; dcui #Стартовая консоль ESXI по ssh; vsish #Vmware интерактивная консоль; cat /etc/chkconfig .db #посмотреть состояние сервисов на хосте; /sbin/services .sh restart #перезагрузить все сервисы на хосте; vmkload_mod --list #Показать загруженные драйвера; vmkload_mod -s /mod/your_driver #Показать параметры драйверов; vmkfstools -i /vmfs/volumes/san_vmfs/my_vm/large_disk .vmdk -d thin /vmfs/volumes/san_vmfs/my_vm/new_thin_disk .vmdk #Конвертировать существующий диск в thin формат; |
esxcli storage nfs list #список nfs-монтирований на хосте esxcli software vib list #cписок установленных vib-пакетов esxcli hardware memory get #информация о памяти на хосте ESXi, включая объем RAM esxcli hardware cpu list #информация о количестве процессоров на хосте ESXi esxli iscsi adapter list #список iSCSI-адаптеров и их имена <code>esxcli network nic list #список сетевых адаптеров</code> esxcli network ip interface list #Информация об IP-интерфейсах хоста esxcli network ip dns search list <code>esxcli network ip dns server list #Информация о настройках DNS</code> esxcli network ip connection |
list #Состояние активных соединений (аналог netstat) network neighbors list #Вывод ARP-таблицы esxcli network firewall get <code>esxcli network firewall ruleset list #Состояние фаервола ESXi и активные разрешения для портов и сервисов</code> esxcli storage vmfs extent list #Информация о томах VMFS, подключенных к хосту esxcli storage filesystem list #Мапинг VMFS-томов к устройствам esxcli system version list #Текущая версия ESXi esxcli storage core path list <code>esxcli storage core device list #Вывод информации о путях и устройствах FC</code> esxcli storage core plugin list #Список плагинов NMP, загруженных в систему esxcli storage core adapter rescan #Рескан HBA-адаптеров <code>esxcli vm process list< /code > #получаем ID<br clear="none" /><code>esxcli vm process kill --type=[soft,hard,force] --world-id=WorldID</code> #убиваем разными способами #Получить список ВМ с их World ID и убить их по этому ID (помогает от зависших и не отвечающих в vSphere Client ВМ) esxcli system welcomemsg get <code>esxcli system welcomemsg set #Узнать и изменить приветственное сообщение ESXi</code> esxcli system settings advanced list | grep <var> #Поискать что-нибудь в Advanced Settings хоста esxcli hardware clock get #Текущее аппаратное время хоста esxcli hardware bootdevice list #Порядок загрузки с устройств esxcli hardware pci list #Список PCI-устройств esxcli iscsi adapter discovery rediscover -A <adapter_name> <code>esxcli storage core adapter rescan [-A <adapter_name> | -all] #Рескан iSCSI-адаптеров (выполняем две команды последовательно)</code> esxcli network vswitch standard list # Список виртуальных коммутаторов и портгрупп |
Most of these have no manual page but will output a help message if run by themselves. I would recommend using extreme caution and using a test host to determine the usefulness in your environment before using them on an important system. Also keep in mind that the examples that I give are not the "only" way the commands can be used.
vim-cmd vmsvc/getallvms
Lists all vm's running on hypervisor and provides vmid
vim-cmd vmsvc/power.off vmid
Powers off vmid referenced from getallvms command
vim-cmd vmsvc/power.on vmid
Powers off vmid referenced from getallvms command
vim-cmd vmsvc/power.reboot vmid
Reboots vmid referenced from getallvms command
vim-cmd vmsvc/destroy vmid
Deletes the vmdk and vmx files from disk
vim-cmd hostsvc/maintenance_mode_enter
Puts hypervisor into maintenance mode
vim-cmd hostsvc/maintenance_mode_exit
Takes hypervisor out of maintenance mode
vim-cmd solo/registervm /vmfs/vol/datastore/dir/vm.vmx
Registers vm in hypervisor inventory
vim-cmd vmsvc/unregister vmid
Unregisters vm with hypervisor
vim-cmd vmsvc/tools.install vmid
Starts vmware tools installation for VM
vim-cmd hostsvc/net/info
Provides information about hypervisor networking
chkconfig -l
Shows daemons running on hypervisor. Can also be used for configuration.
esxtop
Same as linux top for vmware
vmkerrcode -l
List of vmkernel errors
esxcfg-info
Lists a LOT of information about the esx host
esxcfg-nics -l
Lists information about NIC's. Can also be used for configuration.
esxcfg-vswitch -l
Lists information about virtual switching. Can also be used for configuration.
dcui
Provides console screen to ssh session
vsish
Vmware interactive shell
decodeSel /var/log/ipmi_sel.raw
Read System Event Log of server