VMware Tools – без преувеличения, совершенно незаменимый инструмент управления виртуальными машинами. Этот набор утилит предлагает массу полезнейших функций, часть которых отвечает за улучшение производительности и связь с хостом, другими компонентами среды, другая же – за удобство пользователя и дополнительные возможности.
Его не зря сравнивают с гормональной системой виртуальной среды: без VMware Tools, вроде бы, все присутствует, однако ничего не работает так, как положено. И поэтому очень важно не только позаботиться о том, чтобы они были установлены и установлены именно в таком составе, в котором это необходимо, но и правильно настроены.
О том, как проинсталлировать VMware Tools 11.2.0 или обновиться до самой свежей на данный момент версии, можно в мельчайших подробностях почитать в статье «Обновляем VMware Tools до версии 11.2.0». Там же рассказывалось, что они собой представляют, в каком виде предлагаются вендором, а также требования к среде, ее составляющим и операционным системам ВМ. А сегодня поговорим об использовании этого набора утилит на практике и его настройке.
Конфигурирование компонент VMware Tools
Для настройки компонент инструментария можно выбрать один из четырех способов, в соответствии с собственными понятиями об удобстве и техническими особенностями среды:
- утилитой конфигурационной командной строки в гостевой операционной системе;
- пользовательскими скриптами;
- диалоговыми окнами и меню с командами;
- редактированием конфигурационного файла «tools.conf».
Расположение файла конфигурации
Если выбран последний вариант, в первую очередь надо знать, где искать конфигурационный файл VMware Tools, тем более что в разных операционных системах для него предусмотрено индивидуальное расположение:
- Windows XP, Windows Server 2000 и Windows Server 2003: «C:\Documents and Settings\All Users\Application Data\VMware\VMware Tools\tools.conf»;
- Windows Vista, Windows 7 и Windows Server 2008: «C:\ProgramData\VMware\VMware Tools\tools.conf»;
- Linux, Solaris и FreeBSD: «/etc/vmware-tools/tools.conf»;
- FreeBSD with open-vm-tools 10.1.x или новее: «/usr/local/share/vmware-tools/tools.conf»;
- Mac OS X: «/Library/Application Support/VMware Tools/ tools.conf».
Если в указанных местах искомый файл не обнаружен, его следует создать. Также причиной того, что он там не наблюдается, может быть скрытие папки «Application Data» или «Program Data» (для Windows).
Чтобы начать редактировать файл конфигурации его надо открыть в блокноте, например, кликнув правой кнопкой мыши на «Start», зайдя в «All Programs», затем в «Accessories» и выбрав «Notepad». Запускать надо блокнот в режиме «Run as administrator».
Важно! После выполнения изменения в этом файле перезагружать службы VMware Tools нет необходимости. Они обращаются к нему каждые 5 секунд (по умолчанию), сами обнаруживают изменения и тут же их применяют.
Настройка информации о сетевом интерфейсе
При необходимости можно исключить сетевые интерфейсы из GuestInfo и назначить главный, а также низкого приоритета. Все это тоже делается в «tools.conf».
Для первой задачи в список сетевых интерфейсов (приведены через запятую) помещаем опцию «exclude-nics», к примеру, таким образом:
[guestinfo]
exclude-nics=docker*,veth*
В результате интерфейсы «docker*» и «veth*» будут исключены из GuestInfo.
Что назначить приоритетность интерфейсов, следует использовать опции «primary-nics» и «low-priority-nics» со списком имен сетевых интерфейсов (для низкоприоритетных, если их больше одного, аналогично перечисляем все через запятую). Например, вот так:
[guestinfo]
primary-nics=eth1
low-priority-nics=eth*
По итогу, интерфейс «eth1» у нас всегда будет в топе списка IP-адресов, а «eth*» – всегда ниже его.
Использование утилиты настройки в VMware Tools
Специальная конфигурационная утилита продукта представляет собой интерфейс с командной строкой и может использоваться в гостевой операционной системе для модификации параметров VMware Tools, сжатия виртуальных дисков, подключения и отключения виртуальных устройств. Она включена в базис следующих продуктов вендора:
- vSphere 4.1 и более поздние,
- Workstation 7.0 и более поздние,
- Fusion 3.0 и более поздние,
- Player 3.0 и более поздние,
- ACE 2.6 и более поздние.
Запустить его в следующих семействах ОС можно файлом:
- Windows – «VMwareToolboxCmd.exe»,
- Linux, FreeBSD, Solaris – «vmware-toolbox-cmd»,
- Mac OS X – vmware-tools-cli.
Важно! В Mac OS X перед командой следует ввести «./», так как инсталлятор VMware Tools никоим образом не меняет переменные среды PATH.
Подсказка по синтаксису вызывается командой «help».
Конфигурирование времени синхронизации между гостевой ОС и ОС хоста
Если включить периодическую синхронизацию времени между операционкой гостевой машины и хостом, VMware Tools раз в минуту будет проверять совпадение, и, если обнаружит расхождение, тут же его устранит:
Интересно, что устранение происходит не моментально (скачком или откатом), а постепенно: соответствующая служба просто чуть ускоряет или замедляет бег времени на гостевой виртуальной машине, в зависимости от того, найдено опережение или отставание.
По правде говоря, собственные службы синхронизации операционных систем (Microsoft Windows Time Service (Win32Time) в Windows, Network Time Protocol (NTP) в Mac OS X и Linux) работают, обычно, аккуратнее.
Важно! В каждой системе должна функционировать только одна служба синхронизации времени – либо предоставляемая VMware Tools, либо нативная ОС.
Следует учесть, что даже если отключить синхронизацию в VMware Tools, она все равно будет происходить, когда стартует служба «VMware Tools daemon» (в т. ч. при перезагрузке), когда ВМ продолжает работу после приостановки операций, после возврата к снэпшоту или сжатия диска. Если в файле «.vmx» параметр «time.synchronize.tools.startup.backward» не включен, часы гостевой машины переведутся вперед. С другими событиями такого не случится.
Отключение службы периодической синхронизации времени в VMware Tools
Если нужно отключить синхронизацию, следует отредактировать «.vmx»-файл, назначив всем соответствующим параметрам «FALSE».
Важно! Редактирование файла «.vmx» нельзя делать при включенной виртуальной машине. Сначала отправляем ее в off.
Важно! В Mac OS X нет необходимости использовать синхронизацию VMware Tools – нативного механизма вполне достаточно, к тому же отключить его – нетривиально.
Конкретные действия при этом будут выглядеть так:
- Отключаем все другие механизмы синхронизации времени;
- Открываем терминал или командную строку в гостевой ОС машины;
- Переходим в директорию инсталлятора VMware Tools (для Windows – в «C:\Program Files\VMware\VMware Tools», Linux и Solaris – «/usr/sbin», FreeBSD – «/usr/local/sbin» и для Mac OS X – в «/Library/Application Support/VMware Tools»);
- Чтобы узнать, включена ли в данный момент синхронизация, вводим команду:
*** timesync status
где *** – это имя утилиты (в Windows – «VMwareToolboxCmd.exe», в Linux, Solaris и FreeBSD – «vmware-toolbox-cmd » и в MAC OS X – «vmware-tools-cli»);
- Затем набираем в командной строке:
*** timesync disable
Если потом нужно будет включить, меняем последнее слово на «enable».
Полный отказ от синхронизации времени
От случая к случаю, даже если служба периодической синхронизации времени отключена, виртуальная машина все равно пытается засинхронизироваться с хостом. При необходимости и это можно выключить, но тогда придется вносить изменения непосредственно в конфигурационный файл ВМ.
Редактировать его можно напрямую через текстовый редактор, выгрузив файл локально, или изменением «Advanced Settings» машины непосредственно из клиента vSphere:
В первом же случае поступаем следующим образом:
- Выключаем виртуалку;
- Открываем в текстовом редакторе «.vmx»-файл;
- Добавляем строки вида:
tools.syncTime = “FALSE”
time.synchronize.continue = “FALSE”
time.synchronize.restore = “FALSE”
time.synchronize.resume.disk = “FALSE”
time.synchronize.shrink = “FALSE”
time.synchronize.tools.startup = “FALSE”
- Сохраняем и закрываем файл;
- Включаем ВМ.
Конфигурирование плагина vmwTimeProvider для Windows
Этот новый плагин времени разработан для родной Windows синхронизационной службы «W32Time», чтобы обслуживать виртуальные машины в vSphere. Он взаимодействует с виртуальным устройством точного времени под ESXi-хостом как альтернатива NTP и ресурсам времени, базирующимся на Active Directory.
Чтобы включить или выключить этот плагин, вначале надо убедиться, что на ВМ установлены виртуальные часы точного времени (почитать об этом можно здесь). Затем, для включения во время установки VMware Tools vmwTimeProvider выбираем компонент «VMware Time Provider» (обычно он не выбран). Для отключения этого плагина модифицируем инсталляцию, не отметив его.
Для проверки текущего статуса плагина можно воспользоваться командой:
w32tm /query /status
Подключение и отключение устройств
С помощью VMware Tools можно подключать и отключать следующие устройства:
- флоппи-диски,
- DVD/CD-ROM приводы,
- ISO-образа,
- USB-устройства,
- звуковые адаптеры,
- сетевые адаптеры.
Важно! Для некоторых устройств нельзя настроить общий доступ и с хоста, и с гостевой операционной системы. Например, в определенный момент времени достучаться до подмонтированного CD-ROM может кто-то один.
Следует учитывать, что в зависимости от того, включил ли какое-то устройство некто с правами системного администратора, контроль над его подключением и отключением пользователю с более низкими привилегиями может быть недоступен.
Из соображений безопасности эта функция по умолчанию отключена (см. «Угрозы от виртуальных устройств» раздела «Безопасность и VMware Tools» ниже). Чтобы ее включить, необходимо проделать следующее:
- Настроить разрешение на подключение или отключение устройств в виртуальной машине:
-
- Открыть в текстовом редакторе файл «.vmx»;
- Найти следующие параметры и сменить их значение на «FALSE»:
isolation.device.connectable.disable = “FALSE”
isolation.device.edit.disable = “FALSE”
-
- Сохранить и закрыть файл;
- Открыть терминал или командную строку в гостевой операционной системе;
- Зайти в директорию инсталлятора (см. выше) и набрать «*** device list», чтобы увидеть список доступных устройств, где *** – это имя специфического для каждого типа гостевой ОС приложения (аналогично тому, что описывалось в теме синхронизации времени);
- Чтобы узнать, подключено ли устройство, набираем:
*** device status ххх
где ххх – имя устройства;
- Затем вводим команду:
*** device ххх enable/disable.
Получение информации о виртуальной машине
Утилита настройки в VMware Tools позволяет собирать информацию о скорости CPU и времени на хосте, а для сред vSphere – еще и дополнительную о памяти и резервировании процессоров, а также о текущих лимитах:
Чтобы воспользоваться этой возможностью, нужно в командной строке или в терминальной сессии гостевой ОС зайти в директорию инсталляции VMware Tools (см. выше) и ввести команду:
*** stat hosttime/speed
где *** – имя утилиты в определенной системе.
Получение информации с помощью переменных guestinfo
Переменные guestinfo дают представление о версионности и билде. В Windows это:
- vmtools.description (описание версии),
- vmtools.versionString (строка с версией),
- vmtools.versionNumber (номер версии),
- vmtools.buildNumber (номер билда),
- toolsInstallErrCode (код ошибки последней инсталляции VMware Tools),
Важно! Инсталляция и апгрейд VMware Tools требуют перезагрузки гостевой операционки. Если она не произведена, эта переменная будет выдавать значение 3010.
- guestinfo.driver.[driver name].version (версия драйвера, где [driver name] – имя конкретно интересующего).
Для систем, использующих скрипты PowerCLI, список переменных можно найти здесь.
Конфигурирование appinfo
Плагин appinfo собирает информацию о запущенных внутри гостевой ОС приложениях и публикует ее в соответствии с уровнями управления. Он устанавливается в комплекте с базовой инсталляцией VMware Tools на ВМ. Этот плагин можно отключить или включить и на уровне машины, и на уровне хоста.
При этом на уровне виртуальной машины доступен такой функционал:
- Получение данных. Для Линукс-осей вводим в командную строку:
vmtoolsd –cmd “info-get guestinfo.appInfo” или
vmware-rpctool “info-get guestinfo.appInfo”
Для Windows:
rpctool.exe “info-get guestinfo.appInfo”
- Изменение интервала опроса (по умолчанию это каждые 30 минут). Для linux-систем команда:
vmware-toolbox-cmd config set appinfo poll-interval <новое значение в секундах>
Для Windows:
VMwareToolboxCmd.exe config set appinfo poll-interval <новое значение в секундах>
- Отключение плагина appInfo. Для Линукса:
vmware-toolbox-cmd config set appinfo disabled true или
vmware-toolbox-cmd config set appinfo poll-interval 0
В Windows:
VMwareToolboxCmd.exe config set appinfo disabled true или
VMwareToolboxCmd.exe config set appinfo poll-interval 0.
Использование плагина ESXCLI на уровне хоста
В последнем апдейте ESXi в ESXCLI в пространстве имен добавился новый плагин, в чьи задачи входит включение или выключение функции appinfo на уровне хоста. Чтобы его активировать, следует вначале запросить хранилище конфигураций и возвратить текущее состоянии функции appinfo командой:
esxcli vm appinfo get
Включить ее на хосте можно так:
esxcli vm appinfo set –enabled true
а выключить:
esxcli vm appinfo set –enabled false
При этом вместо «true» и «false» можно использовать значения «1», «yes», «y», «t» либо «0», «no», «n», «f», соответственно.
Важно! Также вызвать плагин appinfo можно на уровне кластера или дата-центра (подробности здесь).
Настройка обнаружения служб
Плагин Service Discovery связывается с vRealize Operations Manager, чтобы помогать администраторам лучше управлять ВМ больших размеров. Той информации, что VMware Tools и так собирают с машин, недостаточно, а этот плагин способен доставлять и дополнительные данные в vROM. По умолчанию – включен, однако можно и выключить его в любой момент.
Чтобы это сделать, сначала надо убедиться, что драйвер «vsock» успешно установлен на гостевой виртуальной машине. Затем можно открыть файл «tools.conf» и вручную добавить в него секцию:
[servicediscovery]
disabled = true
Либо же использовать командную строку, в которой набирается:
- Для Linux:
vmware-toolbox-cmd config set servicediscovery disabled true
- Для Windows:
VMwareToolboxCmd.exe config set servicediscovery disabled true
Обратно включить можно аналогично, только вместо значения «true» везде подставляем «false».
Безопасность и VMware Tools
Важно отметить, что ряд настроек VMware Tools может вызвать риски по безопасности. Например, с помощью их служб можно подключать виртуальные параллельные и последовательные порты к машинам, вследствие чего связанное устройство является потенциальным каналом атаки. Во избежание рисков рекомендуется отключить уязвимые функции VMware Tools.
Узнать больше о методах защиты vSphere и других компонентов производственных сред можно здесь. Что же касается героя нашего сегодняшнего обсуждения, он оперирует исключительно в масштабах разворота виртуальной машины. И некоторых потенциальных угроз с его подачи можно избежать, если заранее прописать соответствующие параметры VMware Tools в «.vmx»-файле виртуальной машины. Приятно, что по умолчанию многое там уже обеспечивает достаточный уровень защиты.
Рассмотрим несколько типов самых распространенных угроз и методов защиты от них.
Угрозы от непривилегированных пользовательских аккаунтов
Копирование и вставка данных (кусков текста, графики, файлов и т. д.) – один из самых массовых пробоев в безопасности при работе с VMware Tools. По умолчанию, эта возможность отключена (функция «drag and drop»). Однако очень часто ее включают, чтобы пользовательское удобство и спектр операций выросли. В этом случае существует вероятность, что при фокусировании внимания на окне консоли виртуальной машины юзеры без привилегий могут получить несанкционированный доступ к информации.
Этого легко избежать, если в «.vmx» прописать параметры, отключающие копипаст:
isolation.tools.copy.disable = “TRUE”
isolation.tools.paste.disable = “TRUE”:
Угрозы от виртуальных устройств
По дефолту возможность подсоединения и отключения устройств отключена. Но, если ее включить, пользователи с правами ниже администратора и рута смогут подключать разные виртуальные устройства (CD-ROM, сетевые адаптеры и пр.), менять их настройки. Часто встречаются случаи, когда пользователи случайно или намеренно отключали сетевой адаптер, заизолировав свою машину, что спровоцировало отказ обслуживания. Или же устанавливали что-то без санкции, копировали информацию вовне и т.п.
Защита в этом случае состоит в назначении соответствующих параметров «.vmx»:
isolation.device.connectable.disable = “TRUE”
isolation.device.edit.disable = “TRUE”
Угрозы от потока информации на виртуальной машине
Размер файла VMX
По умолчанию для этого файла установлен размер в 1 МБ. Это сделано не зря, ведь в случае работы хранилища данных вне дискового пространства, неконтролируемое его увеличение ведет к отказу службы.
Иногда информационные сообщения посылаются с виртуальной машины в файл «.vmx». Обычно они определяют характеристики или идентификаторы ВМ и записывают пары вида «имя-значение». Поэтому может понадобиться увеличить размер файла VMX следующим образом:
- Заходим в секцию «tools.setInfo.sizeLimit»;
- Обновляем значение параметра:
tools.setInfo.sizeLimit = “1048576”
где цифры – это размер в килобайтах.
Отправка счетчиков производительности в PerfMon
Для гостевых Linux- и Windows-операционных систем доступно интегрирование счетчиков производительности RAM и CPU в PerfMon. Опасность состоит в том, что эта возможность открывает детальную информацию о доступном для этой ОС физическом хосте, и потенциальный злоумышленник может ее использовать для атак на него. По умолчанию эта функция отключена в параметрах «.vmx» следующим образом:
tools.guestlib.enableHostInfo = “FALSE“
К сожалению, блокируются многие (но не все) метрики. А именно:
GUESTLIB_HOST_CPU_NUM_CORES
GUESTLIB_HOST_CPU_USED_MS
GUESTLIB_HOST_MEM_SWAPPED_MB
GUESTLIB_HOST_MEM_SHARED_MB
GUESTLIB_HOST_MEM_USED_MB
GUESTLIB_HOST_MEM_PHYS_MB
GUESTLIB_HOST_MEM_PHYS_FREE_MB
GUESTLIB_HOST_MEM_KERN_OVHD_MB
GUESTLIB_HOST_MEM_MAPPED_MB
GUESTLIB_HOST_MEM_UNMAPPED_MB.
Другие уязвимости
Ряд не относящихся к vSphere функций так же может стать потенциальным пробоем в безопасности, учитывая, что виртуальная машина способна работать со множеством продуктов вендора. Их не найдешь в пользовательском интерфейсе vSphere, тем не менее, отключение таких функций уменьшает количество путей доступа гостевой операционной системы к хосту. Чтобы активировать такую защиту, в параметрах «.vmx» следует указать следующее:
isolation.tools.unity.push.update.disable = “TRUE”
isolation.tools.ghi.launchmenu.change = “TRUE”
isolation.tools.ghi.autologon.disable = “TRUE”
isolation.tools.hgfsServerSet.disable = “TRUE”
isolation.tools.memSchedFakeSampleStats.disable = “TRUE”
isolation.tools.getCreds.disable = “TRUE”
Исключение определенных файловых систем из снэпшотов
Конкретно для гостевых операционных систем на Linux параметр конфигурации «excludedFileSystems» позволяет исключать файловую систему из операции снятия снэпшота. В конфигурационном файле «tools.conf» он может быть назначен в секции «vmbackup».
Значением этого параметра указывается список (через запятую) наименований генеральных шаблонов файловых систем. Если в этом перечне использовать целую строку символов, в конце каждого шаблона ставится «*», а если там будет только один символ – то завершает его «?». Причем в самом имени при этом могут использоваться любые значки, включая «/».
Чтобы задать исключение определенной файловой системы из процедуры снэпшотирования, поступаем так:
- Вводим в командную строку:
/etc/vmware-tools/tools.conf
- Находим секцию «[vmbackup]», если ее там нет – просто добавляем;
- Вписываем под ней:
excludedFileSystems = <list of patterns>
где <list of patterns> – список подлежащих исключению файловых систем, через запятую (например, «/fs1» или «/fs*,/dev/*»).
Настройка автоматического апгрейда и инсталляции или удаления компонентов
В файле «tools.conf» доступен контроль над процессами автоматического обновления, а также установки или удаления компонентов (последнее – только для инструментов в Windows).
За автоматический апгрейд отвечает применяемая ко всем подлежащим обновлению инструментам опция «allow-upgrade», для которой в этом файле указываем значение «true» или «false»:
allow-upgrade=true
allow-upgrade=false
Для добавления или удаления функций предложены опции «allow-add-feature» и «allow-remove-feature». Аналогичным вышеописанному образом для них устанавливаются значения «true» или «false».
Включение Carbon Black Sensor с использованием VMware Tools для Windows
Решение Carbon Black Sensor – одно из самых свежих и, надо отметить, активно продвигаемых VMware. Его задача – обеспечить внутреннюю безопасность виртуального пространства. Функция Carbon Black Sensor состоит из плагина облегченной системной службы VMware Tools (Carbon Black Helper (CBHelper)) и лаунчера Carbon Black (CBLauncher). На практике ее работа выглядит следующим образом: когда администратор включает безопасность на виртуальной машине, плагин CBHelper запускает CBLauncher, загружающий инсталляционный пакет Carbon Black Sensor и отрабатывающий его установку, после чего закрывается.
Важно! Инсталляция Carbon Black Sensor отделена от инсталляции VMware Tools. Это означает, что, когда устанавливаются VMware Tools, она не идет с ними комплексом, однако предоставляется функционал для ее внедрения.
Добавилась эта возможность только в VMware Tools 11.2.0.
Требования для использования Carbon Black Sensor
- vCenter версии 6.7U1 или новее,
- 64-bit платформа (десктопные Windows 7-SP1, Windows 8, Windows1, Windows 10 и серверные Windows Server 2008R2, 2012, 2012R2, 2016, 2019).
Процедура инсталляции VMware Carbon Black Sensor
При установке VMware Tools, по умолчанию, плагин CBHelper включен в состав пакетов. Если используется silent-тип инсталляции, следует запустить на выполнение в командной строке:
setup.exe /S /v “/qn REBOOT=R ADDLOCAL=CBHelper”
Если не хочется инсталлировать этот плагин, при инсталляции идут по пути «Custom» и вручную отжимают галочку на его названии в списке. А при silent-установке делают это командой:
setup.exe /S /v “/qn REBOOT=R ADDLOCAL=ALL REMOVE=CBHelper“
Если впоследствии в этом плагине отпала нужда и его хочется отключить, можно поступить двояко, зайдя под правами администратора:
- Изменить настройки VMware Tools. В файле «tools.conf» установить значение интервала опроса, равное «0» (по умолчанию это 180 сек.);
- Реконфигурировать реестр. В этом случае отыскиваем реестр в «HKLM\SOFTWARE\VMware Inc.\CbLauncher», и находим там следующее:
Value Name: DisableCBInstall
Value Type: REG_DWORD
Value Data: 1
Если в последней строке значение «1», инсталляция отключается. Любое другое, даже отсутствие его в принципе, засчитывается как согласие с установкой Carbon Black Sensor.
Для более близкого знакомства с решением, обязательно прочитайте гайд.
Пользовательское скриптование VMware Tools
Для VMware Tools можно использовать связанные с управлением питанием пользовательские скрипты. Существует несколько скриптов, по умолчанию запускаемых на гостевой машине, как только меняется ее статус со включенной на выключенную, и наоборот. Для быстрой активации таких сценариев существуют кнопки «Suspend», «Resume», «Power On» и «Power Off». Так, к примеру, при выключении ВМ стартует скрипт «poweroff-vm-default»:
Скрипты VMware Tools по умолчанию
Для гостевых ОС на Windows, настроенных на применение DHCP, один из дефолтных скриптов запускается, когда пользователь приостанавливает виртуальную машину: он высвобождает ее IP-адрес. Другой же, активируемый при возобновлении ее работы, обновляет ее IP-адрес. Остальные базовые скрипты включения/выключения отвечают за корректное поведение ВМ во время этих действий.
В большинстве Windows-систем скрипты по умолчанию хранятся в папке «Program Files\VMware\VMware Tools».
Важно! На гостевых операционках с NetWare, Windows NT, Me, Windows 98 и Windows 95 пользовательское скриптование не работает.
Во многих операционных системах из Linux-семейства, а также в Mac OS X, Solaris и FreeBSD дефолтные скрипты аналогично на борту. При этом в Linux, Solaris и FreeBSD их можно найти в директории «/etc/vmware-tools», а вот Mac OS X их складирует в «/Library/Application Support/VMware Tools».
Вот, к слову, список их системных названий:
- poweroff-vm-default,
- poweron-vm-default,
- resume-vm-default,
- suspend-vm-default.
Использование пользовательских скриптов на Windows-машинах
В гостевых операционных системах Windows можно самостоятельно писать новые, модифицировать или сохранять под другими именами скрипты, запускающие сценарии при изменении статуса питания ВМ. Они будут активироваться службой VMware Tools или же «daemon» («vmtoolsd»). Так как во втором случае мы имеем дело с эмуляцией работы системы, скрипты в ней запускаются в отдельной сессии – не в той, в которой находится залогинившийся юзер. Следует заметить, что «daemon» не замечает десктопные сессии, следовательно, не в состоянии отражать графические приложения.
Важно! Нельзя применять скрипты для попыток отобразить графические приложения.
Пробежимся по нескольким правилам и замечаниям, которым должны соответствовать пользовательские скрипты:
- Формат файлов со скриптами – «.bat». Именно в нем надо сохранять новые или перезаписывать измененные старые;
- Записывать скрипты следует в ту же директорию, где хранятся дефолтные;
- Скрипты по умолчанию для включения/выключения питания ВМ – это лишь placeholder;
- Скрипты для процедур освобождения/возобновления работы машины состоят из строки, освобождающей или, наоборот, обновляющей ее IP-адрес. Когда пишется собственный скрипт, эту строку обязательно помещают первой, что бы дальше не шло (по дефолту, кстати, это «@%SYSTEMROOT%\system32\ipconfig /release» для освобождения и «@%SYSTEMROOT%\system32\ipconfig /renew» – для возобновления).
Когда скрипт готов, надо сделать его доступным для активации в свое время. Заходим в командную строку гостевой ОС и переходим в директорию инсталлятора VMware Tools («C:\Program Files\VMware\VMware Tools»). Вводим команду:
VMwareToolboxCmd.exe script <имя скрипта> set <путь к новому скрипту>
Важно! Путь надо указывать полностью. Например, «C:\Temp\poweron-my-vm.bat».
Чтобы убедиться в его включении, набираем:
VMwareToolboxCmd.exe script <имя скрипта> current
Если после нужно выключить скрипт (а затем включить), набираем в командной строке:
VMwareToolboxCmd.exe script <имя скрипта> disable/enable
Использование пользовательских скриптов VMware Tools в гостевых ОС других типов
Для начала, нужно знать, что все операции с пользовательским скриптованием выполняются под правами рута. Новые скрипты, как и изменение уже имеющихся дефолтных, аналогично ситуации с Windows, записываются в те же папки, что и предустановленные («/etc/vmware-tools» для Linux, Solaris, FreeBSD и «/Library/Application Support/VMware Tools» для Mac OS X).
Важно! Для этих систем не рекомендуется менять предложенные по умолчанию скрипты.
Чтобы новый скрипт стал работать или чтобы отключить уже запущенный, заходим в терминал либо в командную строку и открываем директорию инсталляции VMware Tools (см. выше). Далее выполняем команду для Linux, Solaris и FreeBSD:
vmware-toolbox-cmd script <имя скрипта> enable/disable
А для MAC OS:
vmware-tools-cli script <имя скрипта> enable/disable.
Важно помнить, что настройка VMware Tools в некоторых случаях тесно завязана на особенности других продуктов вендора. И эти нюансы обязательно изучаются на авторизованных курсах VMware по ним.