пятница, 29 октября 2010 г.

Настраиваем VMware Auto Deploy

Признаться, я всегда мечтал, чтобы когда-нибудь во всех современных приложениях появилась большая круглая красная кнопка "Работать", нажав которую, администратор по прошествии определенного времени получал бы полностью настроенную и работоспособную систему. И хотя VMware Auto Deploy пока не обладает такой кнопкой, но, во всяком случае, делает уверенные шаги в нужном направлении.


VMware Auto Deploy представляет из себя виртуальную оснастку (Virtual Appliance), которая будучи развернута вместе с VMware vCenter Server позволяет автоматизировать процесс загрузки и настройки серверов виртуализации ESX по сети с использованием протокола PXE. Использование Auto Deploy позволяет, во-первых, отказаться от локальных носителей для установки ESXi, что может несколько повысить надежность сервера, во-вторых, разворачивать новые серверы виртуализации, ограничиваясь тремя операциями - смонтировать сервер, скоммутировать сервер, включить сервер. :-)

На текущий момент Auto Deploy находится на этапе Techinal Preview, что не гарантирует стабильной работы в производственной среде, но не мешает нам опробовать ее в деле. Загрузить предварительную версию Auto Deploy можно по этой ссылке.

Установка Auto Deploy
Распакуйте содержимой в любой доступный для vCenter Server каталог. Подключитесь клиентом VMware vSphere Client к серверу. Запустите мастер импорта виртуальных машин из OVF шаблона, нажав File -> Deploy OVF Template.


На первой странице мастера в поле Deploy from a file or URL укажите путь к .ova файлу из распакованного архива. Нажмите Next.

На странице OVF Template Details нажмите Next.

На странице End User License Agreement прочтите и примите лицензионное соглашение с помощью кнопки Accept и нажите Next.

На странице Name and Location задайте имя (Name) виртуальной машины и укажите ее расположение (ЦОД и папку). Нажите Next.

На странице Host / Cluster укажите сервер виртуализации или кластер, на котором будет зарегистрирована виртуальная машина. Нажмите Next.

На странице Datastore выберите хранилище, на котором будут располагаться файлы виртуальной машины. Нажмите Next.

На странице Disk Format укажите тип виртуального диска. Нажмите Next.

На странице Network Mapping привяжите виртуальный сетевой адаптер к нужному виртуальному коммутатору и группе портов. Нажмите Next.

На странице Ready to Complete нажмите Finish.

Дождитесь, пока файлы скопируются на хранилище и машина будет зарегистрирована в vCenter. Запустите виртуальную машину Auto Deploy.

Настройка Auto Deploy
Откройте консоль виртуальной машины Auto Deploy и дождитесь окончания загрузки ОС. При первом старте будет автоматически запущен мастер настройки, позволяющий задать сетевые параметры ВМ. Если в вашей сети еще не настроен DHCP сервер, можете задать статические настройки.

Затем система предложит задать пароль для административной учетной записи vi-admin. После завершения всех настроек откроется окно приветствия.

Настройка DHCP
Для автоматической выдачи сетевых параметров серверам ESXi вам потребуется развернуть сервер DHCP. Вы можете использовать DHCP сервер, встроенный в виртуальную машину или сторонний сервер DHCP в вашей сети. Для примера рассмотрим конфигурацию DHCP сервера в ОС Windows Server 2008.

Откройте консоль управления DHCP сервером. Если у вас уже настроена область с нужным диапазоном адресов, можете использовать ее, в противном случае создайте новую область.
Раскройте область, щелкните правой кнопкой мыши по Scope Options и выберите Configure Options... На вкладке General укажите в качестве значения для опции 066 Boot Server Host Name имя или IP сервера Auto Deploy.

Для опции 067 Bootfile Name впишите "undionly.kpxe.vmw-hardwired". Сохраните настройки.

Теперь можно попробовать загрузить на сервер виртуализации ESXi по сети. Зайдите на ваш сервер и в качестве предпочитаемого источника загрузки выберите сетевой адаптер. В данном примере в качестве такого сервера я использовал другую виртуальную машину.

Если вы правильно настроили DHCP и Auto Deploy, то сервер виртуализации получит необходимые сетевые настройки и начнет процесс загрузки. После ее завершения вы получите вполне работоспособный сервер ESXi, который можете настроить по собственному желанию.

Использование Host Profiles
Понятно, что  в силу особенностей загрузки ESXi по сети, настройки вашего сервера и все изменения, которые вы на нем выполните сохранятся до первого выключения. И хотя сервер, развернутый в производственной среде, может не перезагружаться месяцами, а то и годами, гораздо более практичным будет использование функции Host Profiles, доступной в редакции vSphere Enterprise Plus, которая позволяет применять нужные настройки автоматически при каждой загрузке сервера.

Для создания профиля в Host Profiles вам понадобится эталонный сервер, например тот, который вы только что загрузили по сети. Для начала откройте локальную консоль и задайте пароль для учетной записи root (по умолчанию пароля нет).

Теперь зарегистрируйте сервер виртуализации в vCenter.

Выполните на нем все необходимые настройки (добавьте виртуальные коммутаторы и группы портов, настройте синхронизацию времени, добавьте учетные записи пользователей и группы).

Откройте окно управления профилями Host -> Host Profiles.

Щелкните кнопкой мыши по кнопке Create Profile.

В мастере создания профиля на первой странице выберите Create Profile from existing host. Нажмите Next.

На странице Specify Reference Host укажите добавленный и настроенный вами сервер. Нажмите Next.

На странице Profile Details задайте имя и описание создаваемого профиля. Нажмите Next.

На странице Ready to complete the profile нажмите Finish.

Настоятельно рекомендуется отредактировать созданный профиль и настроить в нем автоматическое назначение пароля для учетной записи root. Для этого щелкните правой кнопкой мыши по созданному профилю и выберите Edit Profile.

В открывшемся окне раскройте Security configuration -> Administrator password, выберите Configure a fixed administrator password, задайте пароль администратора и нажмите OK для сохранения настроек.

Теперь откройте консоль управления Auto Deploy. В главном меню нажмите комбинацию клавиш Alt + F2, в поле autodeploy login введите имя учетной записи (vi-admin), в поле Password - пароль.

Нам потребуется добавить один или несколько серверов vCenter Server, в которых Auto Deploy будет регистрировать серверы виртуализации при каждой загрузке. Сделать это можно с помощью команды:
vifp addserver <АДРЕС_VCENTER>
, где: <АДРЕС_VCENTER> - DNS имя или IP адрес сервера.
На запрос системы введите имя и пароль учетной записи пользователя, которая имеет административные права на сервере vCenter.

Для проверки успешности добавления сервера можете воспользоваться командой:
vifp listservers

Для каждого сервера виртуализации, который хотя бы раз загрузился, используя Auto Deploy создается отдельная запись в базе "/var/lib/deploy/db". Для просмотра записей вы можете воспользоваться командой:
deploy-cmd listhosts
Каждую запись характеризует следующий набор параметров:

  • Boot MAC - MAC адрес сетевой карты, с которой осуществляется загрузка по PXE.
  • IP Address - IP адрес, назначенный DHCP сервером.
  • Asset Tag - идентификатор данного компьютера.
  • Boot Profile - профиль, используемый для загрузки.
  • Status - состояние сервера (дата последней загрузки по сети).

Вы можете создать записи для ваших серверов заранее, используя команду:
deploy-cmd addhost --bootmac=<MAC_АДРЕС> --profile=<ПРОФИЛЬ>

При каждой загрузке сервера виртуализации Auto Deploy просматривает базу и, исходя из назначенного серверу профиля, передает ему нужный загрузочный образ ESXi, а также регистрирует сервер в vCenter, применяет Host Profiles и п.р.

Для просмотра списка доступных профилей используйте команду:
deploy-cmd listprofiles

По умолчанию в Auto Deploy присутствует лишь один профиль - default. Для редактирования настроек профиля используется команда deploy-cmd updateprofile:
deploy-cmd updateprofile --name=default --vcenter=<АДРЕС_VCENTER> --hostprofile=<ИМЯ_HOST_PROFILE> --hostfolder=<ПУТЬ_К_ПАПКЕ>
, где: <ПУТЬ_К_ПАПКЕ> - путь, включающий в себя имя датацентра, в котором требуется зарегистрировать сервер виртуализации. При необходимости включения сервер в HA кластер, путь к папке можно указать в формате "/<ИМЯ_ДАТАЦЕНТРА>/<ИМЯ_КЛАСТЕРА>".

Например, следующая команда позволит настроит профиль default так, чтобы Auto Deploy автоматически регистрировал серверы в vCenter и применял к ним ранее созданный Host Profile:

Теперь перезагрузите сервер. Если вы выполнили все настройки правильно, то после загрузки сервер будет автоматически добавлен в vCenter, переведен в режиме обслуживания (Maintenance Mode), для него будут применены настройки из соответствующего профиля, после чего он будет переведен обратно в штатный режим работы.

Дополнительные сведения
Для всех серверов настоятельно рекомендуется создавать резервации в DHCP, это позволит серверу не только получать каждый раз один и тот же IP адрес, но и задавать ряд индивидуальных настроек, в частности - имя сервера (параметр 012 Host Name).

Если вас не устраивает, что в vCenter серверы ESXi регистрируются по IP адресу, а не по DNS имени, то исправить это можно, создав соответствующие PTR записи в reversed lookup зоне на DNS сервере, который обслуживает vCenter.

Наконец, я заметил следующую закономерность. При тестах использовались  виртуальные серверы ESXi. Частенько при добавлении такого сервера в кластер, если для него выделено меньше 3 Гб памяти, можно получить следующее сообщение об ошибке:  "Cannot complete the configuration of the HA agent on the host. Other HA configuration error".

Заключение
Как вы видите VMware Auto Deploy крайне прост в настройке и работе. Тем не менее, его применение рождает следующие вопросы - кто же будет загружать виртуальные машины с Auto Deploy и vCenter, чтобы те, в свою очередь, загружали серверы виртуализации, почему функционал Host Profiles доступен только в редакции Enterprise Plus, и когда в профилях появится поддержка программного инициатора iSCSI?

пятница, 22 октября 2010 г.

Установка приложений в среде VMware View 4.5 + ThinApp 4.6

Рабочие станции, пускай и виртуальные, предназначены, в первую очередь, для запуска пользовательских приложений. А чтобы запустить приложение, требуется его установить (а иногда и купить). По этой причине сегодня мы рассмотрим различные варианты установки приложений, виртуализованных с помощью VMware ThinApp 4.6, которые можно использовать для виртуальных рабочих станций, а в частности - для VMware View 4.5.

Варианты установки
Установка приложений в мастер-образ. Многие распространенные приложения, не требующие частых обновлений, такие как архиваторы или программы для чтения документов и просмотра изображений могут быть установлены в эталонный образ, который послужит основой для создания виртуальных рабочих станций. Однако не следует увлекаться и записывать в мастер-образ весь возможный набор приложений. Во-первых, пользователь может запутаться от обилия ярлыков на рабочем столе (должно же на нем еще оставаться место, что хранить документы и папки) и запустить что-то ненужное, во-вторых, увеличит занимаемое клонированными образами дисковое пространство, в-третьих, усложнит процедуру администрирования рабочих станций и обновления приложений. Хотя при назначении разрешений на запуск приложений с помощью ThinApp или групповых политик, использовании дифференциальных дисков (Linked Clones) и функции Recompose вы можете достаточно просто решить эти проблемы.

Копирование и установка приложений вручную. Администратор может выполнять установку отдельных приложений, подключаясь к рабочей станции через vSphere Client или RDP. Кроме того существует простая и функциональная утилита psexec, позволяющая запускать программы и выполнять команды на удаленном компьютере без необходимости отвлекать пользователей от работы. Для установки приложений можно воспользоваться командой вроде этой:
psexec \\<имя_компьютера> /u <имя_пользователя> msiexec /i \\<имя_сервера>\<путь_к_установочному_файлу> /qn


Для некоторых приложений вы можете разрешить рядовым пользователям без административных прав самостоятельно производить установку. В этом случае приложение будет установлено в каталог %AppData% пользователя вместо %ProgramFiles% и будет доступно лишь этому пользователю. Такой вариант может является предпочтительным для  приложений вроде текстовых редакторов или программ обмена мгновенными сообщениями. Для включения режима индивидуальной установки при упаковке приложения с помощью ThinApp требуется отредактировать параметр MSIDefaultInstallAllUsers в файле Package.ini и установить его значение в 0.

Для этого выполните следующие действия. При создании пакетированного приложения с помощью ThinApp в окне Package Settings выберите Generate MSI Package.


Перед финальной сборкой в окне Ready to Build нажмите Edit Package.ini.

При желании вы можете задать параметр MSIDefaultInstallAllUsers=2 и разрешить как административную установку для всех пользователей, так и индивидуальную установку (в зависимости от прав, которыми обладает учетная запись, от имени которой был запущен установочный файл).

Использование групповых политик - данный вариант предоставляет неплохие возможности по автоматизации процесса установки, удаления и обновления приложений, что называется 'из коробки'.

Использование средств электронной дистрибуции ПО (например, Microsoft SCCM 2007). Наиболее функциональный вариант из представленных, позволяет полностью автоматизировать процесс установки, а также проводить инвентаризацию ПО, хотя и требует покупки дополнительных лицензий, установки агентов и настройки серверов управления.

Наконец, начиная с версии 4.5 в VMware View есть собственные встроенные механизмы публикации приложений, виртуализованных с помощью ThinApp. Публиковать приложения можно на пул или на отдельные виртуальные рабочие станции.

VMware View предоставляет на выбор два режима установки:
  • В полном (Full) режиме приложение устанавливается на виртуальную рабочую станцию, создает ярлык на рабочем столе и настраивает ассоциации с нужными типами файлов. Процесс установки выполняется в фоновом режиме и не требует от пользователей каких-либо действий. Запуск приложения выполняется с диска виртуальной рабочей станции.
  • В потоковом (Streaming) режиме на рабочем столе пользователя создается ярлык, указывающий на исполняемый файл .exe приложения, расположенный на файловом сервере. Запуск приложения выполняется с общей сетевой папки файлового сервера. Такой вариант установки с одной стороны позволит сэкономить место на хранилище, на котором располагаются диски виртуальных рабочих станций, особенно в случае, когда пользователи запускают одинаковый набор приложений, с другой - приведет к увеличению нагрузки на сеть. Также учтите, что в случае отсутствия доступа к файловому серверу, например, при запуске ВМ в Local Mode режиме, приложения не смогут запуститься.

Пример публикации приложений с помощью VMware View
Перед тем, как опубликовать приложение вам потребуется соответствующим образом упаковать его с помощью Setup Capture, входящего в состав VMware ThinApp 4.6. Для режима полной установки достаточно будет создать .msi файл, содержащий нужное приложение.

Для Streaming режима перед сборкой вам потребуется отредактировать файл настроек Package.ini и установить параметр MSIStreaming=1. В этом случае после создания пакета размер .msi файла не превысит нескольких мегабайт и для корректной установки вам потребуется сохранять его вместе с созданным .exe файлом.

После завершения создания пакетов приложений скопируйте их в общую папку на файловом сервере. Убедитесь, что сервер View Connection Server и виртуальные рабочие станции имеют доступ к данной папке. Учтите, что в Streaming режиме доступ к папке будет осуществлять из-под учетной записи пользователя, запускающего приложение. В большинстве случаев стандартных разрешений будет достаточно.

Запустите консоль View Administrator добавьте общую папку файлового сервера в список репозиториев: View Configuration -> ThinApp Configuration кнопка Add Repository.

В поле Display Name введите имя репозитория, в поле Share path введите UNC путь к общей папке, содержащей упакованные приложения (в формате \\<имя_сервера>\<имя_папки>). При желании можете добавить дополнительное описание в поле Description.

Нажмите Save.

Просканируйте и добавьте приложения в список доступных. В консоли View Administrator выберите Inventory -> ThinApps. На вкладке Summary нажмите Scan New ThinApps.

Выберите одно из расположений, добавленных ранее и папку для сканирования, и нажмите Next.

Выберите одно или несколько (с помощью зажатых клавиш CTRL или SHIFT) приложений из списка доступных и нажмите Scan.

После завершения сканирования вы увидите перечень добавленных приложений. Нажмите Finish.

Добавленные приложения появятся в окне на вкладке Summary.

Для назначения приложений вы можете воспользоваться той же вкладкой Inventory -> ThinApps. Выберите необходимое приложение из списка и нажмите Add Assigment и в контекстном меню выберите область назначения - на пул (Pools...) или на рабочие станции (Desktops...).

В открывшемся окне выберите один из двух доступных типов установки (Installation type): Streaming или Full и с помощью кнопки Add... добавьте один или несколько пулов или рабочих станций на которые требуется назначить приложение. Нажмите OK для сохранения настроек.

Теперь пользователям достаточно будет подключиться к своим рабочим станциям и приложение будет автоматически установлено. Учтите, что при использовании Full режима в зависимости от размера приложения для копирования и установки может потребоваться некоторое время, поэтому ярлык может появится не сразу.

Обновление опубликованных приложений
Установка приложений - половина дела. Когда-нибудь вам придется их обновить. ThinApp предоставляет несколькомеханизмов по обновлению приложений, однако их использование совместно с VMware View имеет свои нюансы.

Для обновления приложения вам потребуется выполнить следующие шаги:
  1. Удалить назначенное приложение (Remove Assigment) с пула или рабочих станций.
  2. Подождать, пока все пользователи войдут на свои рабочие станции, чтобы устаревшая версия приложения удалилась.
  3. Удалить устаревшее приложение из списка ThinApps.
  4. Скопировать обновленную версию приложения на файловый сервер и добавить его в список ThinApps.
  5. Назначить обновленную версию приложения на пул или рабочую станцию.
  6. Подождать, пока все пользователи войдут на свои рабочие станции, чтобы обновленная версия приложения установилась.
Не слишком просто и быстрый вариант, учитывая, что из-за некоторых пользователей процесс обновления может растянуться на несколько дней. С другой стороны, для Linked Clones машин также может быть выполнен Refresh, который вернет виртуальную машину к исходному состоянию и удалит установленные приложения.

В ряде случаев вовсе необязательно выполнять полную установку приложения, и достаточно только обновить исполняемые файлы. Для Streaming режима это сделать проще, поскольку достаточно заменить файлы в общей папке, после чего все пользователи смогут запускать обновленную версию приложения.

Более корректным вариантом является использование встроенного механизма обновления, поддерживаемого в ThinApp - исполняемый файл обновленной версии приложения переименовывается из <имя_приложения>.exe в <имя_приложения>.1 (например, "Adobe Reader.1") и помещается в ту же папку, что и исполняемый файл старого приложения. При следующем запуске приложение автоматически обнаружит наличие обновленной версии и запустит ее. При этом пользователи, работающие с текущей версией приложения, смогут продолжать с ней работать до следующего запуска. При необходимости последующего обновления приложения вы можете просто добавлять новые версии .3 или .4 и удалять устаревшие .1 или .2, по мере того, как пользователи будут прекращать работать с ними.

Для Full режима установки ситуация несколько отличается. Вы можете настроить приложение на автоматическую проверку обновленной версии при каждом запуске, указав при создании пакета в параметре AppSyncURL в файле Package.ini путь к обновленной версии на файловом сервере в формате file://<имя_сервера>/<путь_к_файлу> или http://<имя_сервера>/<путь_к_файлу> (например: "file://Fileserver/Software/Firefox/Firefox.exe").

Но поскольку приложение в Full режиме копируется в подпапку в %ProgramFiles%, то для для выполнения установки у учетной записи должны быть права локального администратора, либо права на запись в указанную папку, что довольно рискованно делать для рядовых пользователей даже на индивидуальных виртуальных рабочих станций.

Наконец, вы можете написать скрипт, который бы копировал обновленные версии приложений в нужные папки, однако, выглядит это уже не так удобно и функционально, как хотелось бы.

На сегодня всё.