Доброго времени суток, коллеги.
В данной статье рассмотрим автоматическое
обновление vDisk'ов Citrix Provisioning Services. В качестве примера будем
автоматически добавлять в образ виртуального диска актуальные базы антивируса Kaspersky
и устанавливать обновления Windows.
Для того, чтобы виртуальная машина
автоматически загружалась с версии образа типа "Maintenance", без
дополнительного запроса в консоли, выполним изменения в реестре на каждом сервере
Citrix PVS.
Добавим ключ реестра "SkipBootMenu"
типа "REG_DWORD" со значением "1" в разделе "HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\ProvisioningServices\StreamProcess".
Перезагружаем службу «Citrix PVS Stream
Service». Для этого в командной строке CMD каждого PVS-сервера выполним
команды:
net stop StreamService
net start StreamService
Теперь любые типы виртуальных машин будут
загружаться с соответствующих типов версий образов без дополнительного запроса
"Boot Menu".
Подробнее тут.
Включим опцию автоматического обновления vDisk’ов
для сайта PVS.
Для этого щелкаем правой кнопкой мыши по
сайту, в нашем случае «XenAppHosts», в контекстном меню выбираем «Properties».
В появившемся окне «Site Properties»
переходим по вкладку «vDisk Update», выделяем «Enable automatic vDisk update on
this site». В разделе «Select the server to run vDisk updates on this site:» выбираем
сервер на котором будет запускаться служба автоматического обновления образа
диска, в нашем случае «ven-tst-pvs01», нажимаем «OK».
Добавим хост, в нашем случае VMWare, на
сайт PVS. Для этого щелкаем правой кнопкой мыши по разделу «Hosts», в
контекстном меню выбираем «Add Host».
В окне «Hypervisor Type», выбираем «VMWare
vShere/ESX», нажимаем «Next».
В окне «Name/Description» в строке «Name»
вводим имя, отображаемое в консоли «Provisioning Service Console», в нашем
случае «VMWareHost». Нажимаем «Next».
В окне «Hostname or IP Address» вводим имя
сервера VMWare, в нашем случае «vmware». Нажимаем «Next».
В окне «Credential» вводим учетные данные
для подключения к хосту, нажимаем «Verify Connection». После успешной
верификации нажимаем «Next».
В окне «Confirmation» нажимаем «Finish».
Видим, что хост успешно добавлен.
Добавим виртуальный диск, который будет
автоматически обновляться. Для этого переходим в раздел «vDisk Update
Management». Щелкаем правой кнопкой мыши по подразделу «vDisks», в контекстном
меню выбираем «Add vDisk».
В появившемся окне, щелкаем «Next».
В окне «vDisk Select» выбираем
необходимый виртуальный диск, в нашем случае «TestAutoUpdatevDisk01», нажимаем «Next».
В окне «Host / VM» в строке «Select the
Connection hosting the VM» выбираем добавленный ранее хост виртуализации, в
нашем случае «VMWareHost».
В строке «Enter the name of the VM used
to apply updates to the vDisk» вводим имя виртуальной машины, при помощи
которой будет производиться обновление vDisk’а, в нашем случае «ven-tst-upd01».
Нажимаем «Next».
В окне «Active Directory» выбираем подразделение
(OU), где сервис PVS создаст новый объект типа компьютер с именем «ven-tst-upd01».
Нажимаем «Next».
В окне «Confirmation» нажимаем «Finish».
Виртуальный диск успешно добавится.
Добавим задачу на обновление виртуального диска. Для
этого переходим в раздел «vDisk Update Management». Щелкаем правой кнопкой мыши
по подразделу «Tasks», в контекстном меню выбираем «Add Task».
В появившемся окне нажимаем «Next».
В окне «Name / Deskription» введем имя
задачи, в нашем случае «Test_Update». Нажимаем «Next».
В окне «Schedule» задаем расписание
запуска обновления виртуального диска. В нашем случае указываем «None», т.е.
задачу будет запускать вручную. Нажимаем «Next».
В окне «vDisks» необходимо выбрать
виртуальный диск. Для этого нажимаем «Add».
В появившемся окне выбираем «TestAutoUpdatevDisk01»,
нажимаем «Ok». Далее «Next».
В окне «ESD Client» оставляем значения по
умолчанию, нажимаем «Next».
В окне «Scritps» нажимаем «Next».
В окне «vDisk Access» выбираем тип версии
виртуального диска, который будет назначен после успешного выполнения задачи
обновления VDisk’а. В нашем случае «Test». Нажимаем «Next».
В окне «Confirmaion» нажимаем «Finish».
Подготовим сам образ виртуального диска
для установки обновлений Windows и актуализации антивирусных баз. Все действия
необходимо производить на виртуальном диске в режиме записи.
Скачиваем по ссылке Windows Update PowerShell
Module.
Разархивируем файлы из скачанного архива «PSWindowsUpdate.zip»
в папку «%WINDIR%\System32\WindowsPowerShell\v1.0\Modules»
Разрешим выполнение скриптов на данном
компьютере, выполнив в консоли PowerShell:
Set-ExecutionPolicy Bypass
Проверим работоспособность модуля.
Импортируем модуль в оснастку PowerShell, выполняем:
ipmo
C:\Windows\System32\WindowsPowerShell\v1.0\Modules\PSWindowsUpdate -Verbose –force
Для загрузки обновлений Windows и их установки, выполним:
Get-WUInstall -Verbose –AcceptAll –IgnoreReboot
Видим, что происходит скачивание обновлений Windows.
После успешного скачивания, начнется установка.
Проверка модуля завершена.
Создадим файл «Update.ps1» с содержанием:
“C:\Program Files (x86)\Kaspersky
Lab\Kaspersky Endpoint Security 10 for Windows\avp.com" UPDATE
ipmo
C:\Windows\System32\WindowsPowerShell\v1.0\Modules\PSWindowsUpdate -Verbose
–force
Get-WUInstall -Verbose –AcceptAll –IgnoreReboot
Optimize-Volume -Driveletter C
-Defrag -Verbose
Данный скрипт актуализирует базы данных антивируса, устанавливает
обновления Windows, после чего запускает дефрагментацию диска C:\.
Поместим данный файл в директорию «C:\Temp».
Создадим файл Update.bat в директории C:\Program
Files\Citrix\Provisioning Services\ с содержанием:
powershell.exe -ExecutionPolicy bypass -File C:\Temp\Update.ps1
Данный скрипт запускается при успешной загрузке виртуальной машины, в
процессе выполнения задания автоматического обновления виртуального диска.
Подробнее тут.
Запускаем задачу «Test_Update» вручную. Для этого щелкаем правой кнопкой
мыши по задаче и нажимаем «Run update now».
Задача успешно запустится.
На этом предлагаю закончить.
Вопросы, замечания и предложения пишите в комментариях или на почту.
Удачного тестирования!