пятница, 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?

2 комментария:

  1. А как быть с коммандой "deploy-cmd" в случае версии vSphere 5.1 и auto deploy на vCenter Appliance? Похоже, что её там нет :(

    ОтветитьУдалить
  2. С выходом vSphere 5.0 и интеграцией Auto Deploy в vCenter, данная статья потеряла актуальность. Рекомендую посмотреть эту статью по настройке: http://www.vm4.ru/2011/10/auto-deploy.html

    ОтветитьУдалить