суббота, 5 февраля 2011 г.

VMware tools cmd

Если взять виртуальную машину на ESX(i), то после установки на нее VMware tools в соответствующем каталоге появляются пара потенциально интересных команд:
C:\Program Files\VMware\VMware Tools>VMwareToolboxCmd.exe help
Usage: VMwareToolboxCmd.exe <command> [options] [subcommand]
Type 'VMwareToolboxCmd.exe help <command>' for help on a specific command.
Type 'VMwareToolboxCmd.exe -v' to see the Vmware Tools version.
Use '-q' option to suppress stdout output.
Most commands take a subcommand.

Available commands:
device
disk
script
stat
timesync

For additional information please visit http://www.vmware.com/support/

Можно получить хелп по каждому из подпараметров: 

C:\Program Files\VMware\VMware Tools>VMwareToolboxCmd.exe help stat
stat: print useful guest and host information
Usage: VMwareToolboxCmd.exe stat <subcommand>

Subcommands:
hosttime: print the host time
speed: print the CPU speed in MHz
ESX guests only subcommands:
sessionid: print the current session id
balloon: print memory ballooning information
swap: print memory swapping information
memlimit: print memory limit information
memres: print memory reservation information
cpures: print CPU reservation information
cpulimit: print CPU limit information


Ну и, наконец, получить какую-то информацию:

C:\Program Files\VMware\VMware Tools>VMwareToolboxCmd.exe stat balloon
0 MHz

Интересная команда с неожиданным результатом – я пытаюсь запросить объем памяти, занятый баллоном, и мне сообщают что сейчас этот объем = 0 МГц.

Вторая интересная утилита - vmtoolsd.exe

ее можно применить вот так:

сначала на ESX или ESXi присвоить значение произвольному атрибуту. Например, создадим переменную с именем хоста, на котором работает эта ВМ. Команда выглядит примерно так:

vmware-cmd /vmfs/volumes/iSCSI_LUN_1_main/File_Server_Win2008_1/File_Server_Win2008.vmx 
setguestinfo hypervisor.hostname esx1.vm4.ru

здесь vmware-cmd – спецкоманда для работы с ВМ. Запускаем ее или в Service Console для ESX, или в vMA для ESX(i).

setguestinfo - это специальный нужный нам сейчас параметр для создания переменной.

hypervisor.hostname – переменная, название которой мы придумали сами.

esx1.vm4.ru – значение переменной.

Можно этот код сделать более правильным – значение переменной заносить не фиксированным, а в зависимости от сервера, на котором команда выполняется:

vmware-cmd /vmfs/volumes/iSCSI_LUN_1_main/File_Server_Win2008_1/File_Server_Win2008.vmx 
setguestinfo hypervisor.hostname $(hostname)

Так вот, теперь значение этой переменной можно получить внутри ВМ, командой вот такой:

C:\Program Files\VMware\VMware Tools>vmtoolsd.exe --cmd "info-get guestinfo.hypervisor.hostname"

См. скриншоты:

задаем переменную, снаружи:

screen-04

Получаем значение, внутри:

screen-05

По мотивам How to extract host information from within a VM?

0 коммент.:

Отправить комментарий