Microsoft Deployment Toolkit 2010 — инвентаризация на службе виртуализации

Все большее количество компаний используют виртуальные машины в промышленной среде. Следовательно, нужно задуматься об автоматизации установки ОС в виртуальной среде. Иметь раздельные инструменты для установки ОС на физические и виртуальные серверы выглядит накладным. Значит, универсальные средства установки должны понимать азы технологий виртуализации, различать основные сценарии и уметь оценивать аппаратные требования и возможности. Хороший тому пример — представленный недавно обновленный набор инструментов для развёртывания «Microsoft Deployment Toolkit 2010» (далее — просто «MDT 2010». Действительно, стандартный сценарий аппаратной инвентаризации  «ZTIGather.wsf» , выполняемый в процессе установки ОС, теперь собирает дополнительно следующую информацию:

  • IsHypervisorRunning. Переменная, принимающая значение «True», если обнаружено, что идет работа поверх гипервизора (например, Hyper-V).
  • SupportsVT. Переменная, принимающая значение «True», если процессор поддерживает аппаратную виртуализацию (Intel VT или AMD-V) и данная настройка включена в BIOS. Это может быть полезно не только на серверах, но и на клиентских ОС. Например, в сценарии установки Windows 7 в зависимости от возвращенного значения можно принять решение об установке Windows Virtual PC и Windows XP Mode, которые требуют поддержки аппаратной виртуализации. Очевидно, что внутри виртуальных машин, где технологии аппаратной виртуализации не работают, эта переменная всегда будет иметь значение «False».
  • SupportsNX. Переменная, принимающая значение «True», если процессор и BIOS поддерживают технологию «NX» (No eXecute) или «XD» (eXecute Disable), которые необходимы для работы Hyper-V и ряда других платформ виртуализации.
  • Supports64Bit. Переменная, принимающая значение «True» для процессоров с поддержкой технологий «EM64T» или «AMD64». В MDT 2008 аналогичную информацию можно было получить из переменной «CapableArchitecture» .
  • SupportsHyperVRole. Переменная, принимающая значение «True» в случае, когда все три предыдущих переменных («SupportsVT», «SupportsNX» и «Supports64Bit») вернули значение «True» — следовательно возможна установка роли Hyper-V.
  • IsVM. Переменная, принимающая значение «True» если обнаружится, что сценарий выполняется в виртуальной машине. Технически на данный момент гарантированно определяются платформы виртуализации Hyper-V, Virtual PC, Virtual Server 2005 и VMware. Для Citrix Xen, Sun VirtualBox и более экзотических гипервизоров корректная обработка не гарантирована.
  • VMPlatform. Переменная, принимающая название обнаруженной платформы виртуализации в том случае, когда на прошлом шаге «IsVM» вернула «True». Например — Hyper-V, VS2005, VMware или VirtualBox.

Как же это использовать в MDT? Вариантов несколько — от рассмотренного выше сценария установки Windows Virtual PC и Windows XP Mode на совместимых ПК во время развёртывания Windows 7 и автоматической установки роли Hyper-V на совместимых серверах до установки требуемых дополнений или служб интеграции при установке ОС в виртуальной среде. Рассмотрим это на примере Hyper-V как технологии виртуализации, наиболее близкой моим читателям.

Предположим, что в Deployment Workbench мы делаем Task Sequence для установки 32-битной версии Windows 7. Клиентские ОС не имеют встроенных служб интеграции, и в отличии от Windows Server 2008 R2 вам потребуется установить их отдельно. Рассмотрим на примере сценария Light Touch, как добавить установку служб интеграции в случае необходимости (то есть в случае, если ОС устанавливается в ВМ на платформе Hyper-V).

В Deployment Workbench нам потребуется создать приложение «Hyper-V Integration Services x86», указав путь до дистрибутива 32-битной версии. (Это каталог «%SystemRoot%\VMguest\support\x86» на сервере с установленной ролью Hyper-V). В качестве  команды установки следует указать «setup.exe /quiet /norestart». В свойствах приложения выбрать настройку «Reboot the computer after installing this application», добавить это созданное приложение в Task Sequence и указать следующее условие для установки приложения: «VMPlatform equals Hyper-V». То же самое придётся повторить и при подготовке Sequence с 64-битной версией ОС. То есть создать приложение «Hyper-V Integration Services x64», указать путь до дистрибутива 64-битных служб («%SystemRoot%\VMguest\support\amd64»), ту же команду, требование перезагрузки и условие выполнения «VMPlatform equals Hyper-V».

Для сценария Zero Touch с использованием SCCM все аналогично, только создаем не приложение, а пакет SCCM. Надеюсь, что это поможет вам оптимизировать процессы установки ОС в виртуальной и физической среде, перейдя к единому способу развёртывания.