Советы по развертыванию групп серверов
Реализованная в Windows Server 2003 новая служба Automated Deployment Services (ADS) обеспечивает дистанционное развертывание и управление новыми установками Windows 2003 или Windows 2000 Server с помощью оснастки консоли Microsoft Management Console (MMC) или с использованием сценариев Windows Management Instrumentation (WMI). Разработанная в рамках инициативы Microsoft Dynamic Systems Initiative (DSI), служба ADS предназначена для использования в обладающих высокой пропускной способностью сетях вычислительных центров. В ней реализовано несколько современных технологий — включая среду Preboot Execution Environment (PXE), средства для создания образов томов, агенты развертывания и управления, интерфейс WMI и средства командной строки. Все они являются частью инфраструктуры для массового развертывания и администрирования серверов. Под созданием образа тома здесь понимается процедура переноса содержимого тома жесткого диска в файл, который впоследствии можно скопировать на другой жесткий диск. ADS — это первая разработанная специалистами Microsoft технология формирования образов томов. Она дополняет другие предложенные Microsoft технологии развертывания, такие как Remote Installation Services (RIS). Сейчас мы рассмотрим архитектуру и принципы функционирования ADS, а также познакомимся на простом примере с тем, как выполняется развертывание средствами ADS.
Архитектура ADS
На рис. 1 представлена базовая архитектура ADS. Верхний уровень архитектуры —различные интерфейсы управления ADS: ADS-оснастка консоли MMC, инструментальные средства командной строки, а также специализированные сценарии WMI и приложения, взаимодействующие с базовой службой ADS посредством WMI. Оснастка позволяет администратору управлять сервером ADS (т. е. сервером, на котором установлена ADS), а также различными системами, образы которых предстоит сформировать или которые нужно развернуть и затем управлять ими. Средства командной строки, в сущности, выполняют те же функции, к которым можно обращаться из окна оснастки ADS. Полный список имеющихся инструментальных средств командной строки с указанием выполняемых ими задач приводится в документации по ADS, размещенной по адресу http://www.microsoft.com/windowsserver2003/ technologies/management/ads/default.mspx. В процессе установки ADS добавляет в репозитарий WMI Common Information Model (CIM) несколько классов WMI; разработчики могут использовать эти классы для создания специализированных приложений ADS или сценариев. ADS (ее можно получить по адресу http://www.microsoft.com/windowsserver2003/ techinfo/overview/adsbenefits.mspx) следует устанавливать на системах Windows 2003, Enterprise Edition и Windows 2003, Datacenter Edition.
Рисунок 1. Архитектура ADS |
Пакет ADS включает в себя три службы: служба контроллера (Controller service), службы сетевой загрузки (Network Boot Services, NBS) и служба распределения образов (Image Distribution service). Эти службы управляют последовательностью операций, обрабатывают запросы на загрузку PXE и формируют образы томов. Компонент NBS включает в себя службу PXE и отвечает главным образом за функцию загрузки агента развертывания ADS (ADS Deployment Agent). Служба развертывания образов обеспечивает прием и передачу образов с помощью агента развертывания.
В комплект поставки ADS входят два агента: агент развертывания и агент администрирования. Агент развертывания, который служба NBS запускает из сети с помощью PXE, реализует небольшое подмножество Windows, позволяющее развертывать системы с сервера ADS. В данный агент входит несколько компонентов Windows 2003, так что для установки ADS потребуется компакт-диск с кодом Windows 2003. Помимо прочего, агент развертывания позволяет получать образы диска с сервера ADS, а также передавать их на этот сервер. С помощью файлов XML агент развертывания запускает необходимые инструментальные средства и команды, которые определяют последовательность операций при выполнении типичных задач (например, разбиение диска на разделы, изменение содержимого образа реестра, копирование дополнительных файлов с сервера ADS на жесткий диск развернутой системы). Такие задачи известны как последовательности задач ADS. Более подробная информация о том, как ADS выполняет эти последовательности, содержится во врезке «Файлы последовательностей ADS».
Агент администрирования выполняется в развернутой операционной системе в качестве службы. Его нужно устанавливать в операционной системе, которая предназначена для развертывания, еще до того, как захватывается образ этой операционной системы. С помощью данного агента можно выполнять различные задачи управления развернутой операционной системой с сервера ADS (например, использовать такие средства, как командная строка WMI — WMIC, запускать сценарии Windows Script Host, WSH с помощью WMI или Active Directory Service Interfaces, ADSI). С помощью агента администрирования можно также запускать различные процессоры сценариев от независимых поставщиков (нужно только, чтобы в образе развертываемой системы присутствовали все компоненты, необходимые для выполнения соответствующей задачи). Агент позволяет запускать почти все традиционные инструменты управления, но необходимо тщательно выбирать контекст безопасности, в котором выполняется агент (речь идет, в частности, о таких обстоятельствах, как выполнение службы от имени учетной записи Local System или доменной учетной записи). Если сетевые каналы связи не нужны, лучше всего выполнять агент в локальном контексте безопасности.
ADS регистрирует все свои действия по выполнению задач в базе данных Microsoft SQL Server 2000 или в Microsoft SQL Server Database Engine (MSDE). ADS поставляется вместе с MSDE, которую можно задействовать в случае, если не используется SQL Server. Если же требуется архитектура с более широкими возможностями масштабирования или желательно хранить информацию ADS в децентрализованной базе данных SQL Server, можно указать параметры доступа к базе данных при установке ADS.
В комплект поставки ADS также входит набор интерактивных средств формирования образа тома, который можно использовать для монтирования образа в качестве отображаемого тома так, чтобы иметь возможность автоматически исследовать и обновлять содержимое образа, как если бы он размещался на локальном жестком диске. Эта функция позволяет модифицировать существующий образ, не прибегая к процедуре повторного захвата тома. Можно также задействовать средства формирования образа для захвата или восстановления образа, с которого предстоит запускать развертываемую систему. Так, можно использовать эти средства для запуска целевой системы в среде Windows Preinstallation Environment (WinPE), а затем захватить том, чтобы создать на нем образ или получить образ с сервера ADS. WinPE — это «облегченная» версия Windows. Ее можно запускать с компакт-диска для того, чтобы получать доступ к командной строке Windows. Компонент WinPE совместим с такими технологиями, как WSH, приложения HTML и ADO, которые обеспечивают выполнение сценариев. Этим компонентом могут пользоваться только клиенты, имеющие лицензии Enterprise Agreement, либо получившие лицензию Select License и заключившие договор Software Assurance-SA. Более подробные сведения о WinPE можно найти по адресу http://www.microsoft.com/licensing/programs/ sa/support/winpe.asp. Однако для того, чтобы воспользоваться этим методом, необходимо физически присутствовать в месте развертывания целевой системы для запуска WinPE; кроме того, метод не позволяет задействовать многоадресную передачу Trivial FTP (TFTP), которая может повысить производительность системы. Копирование и восстановление образов с помощью агента развертывания предпочтительнее, потому что агент дает возможность использовать многоадресную технологию для передачи образа на группу компьютеров так, что администратору не придется обходить все целевые системы.
Установка ADS и захват образа
Теперь, когда мы имеем некоторое представление об архитектуре ADS, перейдем к рассмотрению процесса установки и настройки ADS и захвата образа операционной системы, которую предстоит развернуть. Приведенные ниже примеры иллюстрируют лишь базовые подходы, но их вполне достаточно, чтобы получить представление о том, как функционирует ADS.
Чтобы установить службу ADS, необходимо загрузить ее в папку на сервере Windows 2003 Enterprise или Windows 2003 Datacenter и запустить исполняемый модуль. Приведенные ниже примеры базируются на той предпосылке, что администратор остановил свой выбор на MSDE и принял все стандартные параметры установки для ADS. В ходе процесса установки нам понадобится компакт-диск Windows 2003. По завершении выполнения программы Setup следует открыть папку C:program filesmicrosoft adssamplessequences и запустить файл create-templates.bat. В результате в базе данных сервера ADS будут зарегистрированы стандартные последовательности ADS.
В порядке подготовки операционной системы к развертыванию и захвату ее образа нужно выбрать эталонную систему (т. е. сервер Windows 2003 или сервер Windows 2000, выбранный эталоном, образ которого будет создан и копии которого будут развернуты). При необходимости следует настроить все службы Windows, оптимизировать параметры рабочего стола в соответствии с требованиями и добавить те дополнительные пакеты (скажем, Support Tools, средства из набора ресурсов, антивирусные программы), которые желательно включить в эталонную систему. Устанавливать можно лишь приложения, совместимые с процессом Sysprep; это необходимый компонент для захвата образа и последующего развертывания его на нескольких серверах. К примеру, на эталонной системе не следует устанавливать Microsoft Exchange Server или SQL Server; эти серверы несовместимы с процессом Sysprep. Кроме того, на эталонной системе нужно установить административный агент; для этого необходимо запустить пакет ADSAgentSetup.msi. В ходе установки агента потребуется представить файл сертификата ADS (ADSCert.cer). Он хранится в папке C:program filesmicrosoft adscertificate сервера ADS. Этот сертификат нужен для того, чтобы установить между агентом и сервером ADS связь с использованием средств шифрования.
Теперь следует скопировать процесс Sysprep (sysprep.exe) в папку C:sysprepi386 эталонной системы. Файл sysprep.exe находится в файле-каталоге support oolsdeploy.cab на компакт-диске Windows 2003 или Win2K Server. На первом этапе Sysprep «обобщает» исходную установку операционной системы. Иначе говоря, удаляются все параметры, отражающие особенности установленной системы (такие, как имя компьютера, идентификатор SID, IP-адрес). На втором этапе выполнения процесса Sysprep в ходе первой инициализации операционной системы, образ которой предстоит сформировать, Sysprep выполняет мини-версию процесса установки. При этом указываются настройки, характерные для целевой системы. Упомянутые установки определяются в файле sysprep.inf; данный ASCII-файл содержит серию строк-заполнителей для переменных устройств ADS, отражающих особенности системы. ADS заменяет эти строки значениями, которые администратор определяет для целевой системы. Более подробная информация об этих переменных и о том, как их конфигурировать, содержится во врезке «Переменные устройств».
ADS поставляется с несколькими шаблонными файлами sysprep.inf (они хранятся в папке C:program filesmicrosoft adssamplessysprep folder на сервере ADS). Каждый из этих файлов соответствует определенному варианту развертывания. Нужно выбрать файл, подходящий для имеющейся схемы развертывания (в нашем примере я использую файл sysprep-wg-w2003.inf, предназначенный для развертывания операционной системы Windows 2003 в среде рабочей группы), и скопировать его в папку C:sysprep эталонной системы. Когда будет использоваться одна из стандартных последовательностей ADS для развертывания, ADS автоматически выполнит с помощью агента администрирования первую стадию процесса Sysprep.
По завершении процесса стандартной установки эталонную систему нужно будет зарегистрировать в качестве нового устройства ADS (т. е. в качестве системы, которой можно управлять средствами ADS). ADS обеспечивает автоматическую регистрацию устройств. Я остановлюсь на этом позднее, а пока рассмотрим, как процесс регистрации осуществляется вручную. Каждое устройство представлено в ADS соответствующей записью, в которой система идентифицируется по MAC-адресу или по глобальному уникальному идентификатору (Globally Unique Identifier, GUID) системы управления BIOS (System Management BIOS, SMBIOS). По умолчанию ADS пользуется MAC-адресами. Если же потребуется вместо MAC-адресов задействовать в качестве уникальных идентификаторов устройств SMBIOS GUID, придется из оснастки ADS открыть диалоговое окно Properties модуля Controller Service и изменить настройку Device Identifier. В нашем примере мы будем исходить из того, что используются MAC-адреса.
Во-первых, с помощью программы ipconfig.exe (или программы getmac.exe, если только на машине установлена Windows 2003) нужно определить MAC-адрес эталонной системы. Затем следует перезагрузить систему, и пусть она задержится на экране регистрации. Теперь нужно открыть оснастку ADS, правой клавишей мыши щелкнуть на папке Devices, расположенной на левой панели консоли, и выбрать в контекстно-зависимом меню элемент New. Указав имя устройства — в нашем примере я использую имя MAC0008C79905F1, где 0008C79905F1 есть MAC-адрес эталонной системы, — следует впечатать этот MAC-адрес в поле MAC. Нажмите на кнопку OK и ждите появления сообщения, подтверждающего успешное создание устройства. Затем нужно закрыть диалоговое окно щелчком на кнопке Cancel.
Чтобы управлять устройством с сервера ADS, необходимо настроить устройство так, чтобы оно функционировало в режиме Control. Для этого следует правой клавишей мыши щелкнуть на значке устройства и в раскрывшемся контекстном меню выбрать пункт Control. Указанный в колонке State статус устройства должен изменить свое значение c Disconnected на Connected Full OS. Если значение не меняется, значит, сервер ADS с агентом развертывания не взаимодействует. Может быть, это вызвано ошибкой при указании MAC-адреса, а может быть, какой-либо проблемой в сетевой связи на участке между сервером ADS и системой (например, не запущен агент развертывания).
Завершив подключение устройства, можно начинать процесс захвата на эталонной системе. Следует щелкнуть правой клавишей мыши на значке устройства и в открывшемся меню выбрать элемент Run Job. Нажав на кнопку Next, нужно выбрать элемент Run a template и шаблон для выполнения захвата (я использую шаблон capture-image.xml). Этот файл с помощью административного агента выполняет первый этап процесса Sysprep с ключами Sysprep -quiet, -reseal и -reboot. Далее процесс инициализации перезапускает систему с активизацией агента развертывания для захвата образа локального диска (в соответствии со стандартными установками процесса запуска, обработка начинается с первого раздела первого диска). Этот процесс запуска предусматривает захват образа загруженной и полностью настроенной операционной системы. Для наблюдения за ходом захвата следует открыть папку Running jobs в левой панели оснастки ADS и выполнить двойной щелчок на значке задания, расположенном в правой панели. Продолжительность процедуры захвата варьируется в весьма широких пределах. Она зависит от размера образа, от возможностей аппаратных компонентов эталонной системы и системы ADS, а также от быстродействия сетевых каналов связи.
Подготовка целевой системы
По завершении захвата образа эталонной системы можно приступать к развертыванию ее образа средствами ADS на одной или нескольких целевых системах. Для этого целевую систему нужно зарегистрировать в качестве устройства, чтобы сервер ADS мог принимать от целевой системы запросы PXE. Я уже рассказал о процессе регистрации системы в качестве устройства, но должен признать, что сбор MAC-адресов или идентификаторов SMBIOS GUID для большого числа целевых систем может оказаться занятием весьма утомительным. Впрочем, служба ADS может создавать устройства «на ходу», при получении запроса PXE от целевой системы.
Чтобы воспользоваться этой возможностью, следует открыть диалоговое окно Properties службы Controller и выбрать в поле Action службы PXE значение Add. Обязательно нужно удостовериться, что, если подобным образом настроить сервер ADS на прием всех запросов PXE, это не отразится на работе других систем сети, таких как сервер RIS. По этой причине, а также потому, что процесс развертывания может существенно снизить пропускную способность сети, Microsoft рекомендует осуществлять развертывание в отдельной локальной сети. Кроме того, необходимо настроить целевые системы так, чтобы они направляли запросы PXE и осуществляли загрузку в следующем порядке: загрузка с сетевой интерфейсной платы PXE, загрузка с 3,5-дюймовой дискеты, загрузка с компакт-диска и загрузка с жесткого диска. Если сервер ADS не ответит на PXE-запрос системы, целевая система будет загружаться в соответствии с настройками, указанными в ее системе BIOS. Наконец, нужно позаботиться о наличии в сети сервера DHCP, который будет предоставлять IP-адреса системам, загружающимся с помощью PXE. Следует иметь в виду, что все маршрутизаторы, расположенные между сервером ADS, сервером DHCP и целевой системой, должны быть совместимы с функцией ретрансляции DHCP, которая описана в RFC 1542, и что каждый такой маршрутизатор будет осложнять процесс развертывания.
Рисунок 2. Функционирование ADS |
По завершении настройки сервера ADS, в результате которой он будет принимать от целевой системы PXE-запрос на загрузку и автоматически регистрировать систему в качестве устройства, нужно инициализировать целевую систему. Весь следующий за этим процесс, от первоначальной загрузки целевой системы до развертывания образа операционной системы, показан на рис. 2. Прежде всего целевая система направляет серверу ADS запрос PXE на загрузку (шаг 1). Сервер ADS добавляет в целевую систему запись об устройстве. После создания устройства необходимо перевести его в режим Control, как было показано выше. Если требуется провести настройку тех или иных аппаратных компонентов (например, настройку RAID-системы), можно воспользоваться входящим в комплект поставки ADS инструментом «виртуальная дискета» (vfloppy.vfi, находящимся в каталоге C:program filesmicrosoft ads ools), и средством dskimage.exe для оптимизации загружаемого DOS-диска образа, который выполнит все необходимые операции по настройке. Затем служба ADS загрузит агент развертывания в целевую систему, где он будет храниться в оперативной памяти (шаг 2). По завершении этого процесса устройство получит статус Connected to Pre-OS.
Развертывание образа операционной системы
Для иллюстрации процесса развертывания давайте пройдемся по основным этапам демонстрации развертывания образа операционной системы, который был создан ранее (речь идет об устройстве MAC0008C79905F1). Для проведения развертывания можно воспользоваться имеющейся в службе ADS тестовой последовательностью da-deploy-image-wg.xml, которая соответствует упомянутому выше файлу sysprep-wg-w2003.inf. Прежде всего нужно будет создать переменные для целевого устройства (см. врезку «Переменные устройств»), установить для устройства стандартный шаблон задания и позаботиться о том, чтобы устройство было переведено в режим Control.
Для выполнения настоящего примера необходимы следующие переменные.
Переменная ProductKey, которая должна содержать ключ Windows Product Key, заменяет строку-заполнитель ^ADS_WINDOWS_PRODUCT_KEY^ в файле sysprep-wg-w2003.inf.
Переменная adminpassword, которая должна содержать стандартный пароль администратора Windows Administrator password, заменяет строку-заполнитель ^ADMINPASSWORD^.
Переменная machinename, которая должна содержать имя компьютера, обрабатываемого в ходе процесса Sysprep, заменяет строку-заполнитель ^ADS_COMPUTER_NAME^.
По завершении ввода переменных устройства нужно выбрать в качестве стандартного задания boot-to-da. Тем самым мы указываем, что в роли устройства выступает новый компьютер без установленной операционной системы и что новая система должна загружаться с агентом развертывания. Далее можно будет выполнять задачи управления ADS, такие как захват или восстановление образа локального диска. В заключение следует перевести устройство в режим Control и перезагрузить целевую систему.
Чтобы развернуть образ операционной системы, нужно правой клавишей мыши щелкнуть на целевом устройстве и в раскрывшемся контекстном меню выбрать элемент Run Job. Затем щелкнуть на кнопке Next и выбрать элемент Run a template. Выберите файл da-deploy-image-wg.xml, после чего начнется процесс развертывания, в ходе которого служба ADS будет загружать образ операционной системы на локальный диск целевой системы, используя по умолчанию многоадресную передачу по протоколу TFTP (шаг 3 на рис. 2). По завершении этого процесса целевой сервер перезагружается под управлением перенесенной с помощью образа операционной системы (шаг 4), которая содержит агент администрирования. Последний в свою очередь дает возможность управлять целевым сервером и настраивать его (например, устанавливать дополнительные приложения), разворачивая обязательные сценарии с сервера ADS (шаг 5). Для выполнения мониторинга процесса развертывания нужно в окне оснастки ADS открыть папку Running jobs и выполнить двойной щелчок на имени задачи.
Развертывание образов без проблем
ADS — полезное средство для развертывания систем Windows 2003 и Windows 2000 Server. Использование службы ADS предполагает оптимизацию некоторых параметров, но главное, что в этой службе используются стандартные инструментальные средства и технологии операционной системы, так что администратору не приходится изучать новые наборы инструментов или языки — достаточно понять, как функционируют процессы ADS и как их следует организовывать.
Алан Лессо (alain.lissoir@hp.com) — член группы Technology Leadership Group, входящей в состав подразделения HP Consulting and Integration. Автор книг «Understanding WMI Scripting и Leveraging WMI Scripting» (Digital Press)
Файлы последовательностей ADS
Служба Windows Server 2003 Automated Deployment Services (ADS) содержит файлы XML, которые определяют последовательность операций при выполнении типичных задач развертывания и управления. Эти задачи известны как последовательности заданий, а файлы, определяющие упомянутые последовательности, известны как файлы последовательностей. Каждая операция или задача внутри последовательности обрамляется несколькими тэгами XML.
В комплекте поставки ADS имеется несколько демонстрационных файлов последовательностей. Их можно использовать в качестве шаблонов для создания последовательностей, настроенных в соответствии с конкретными требованиями. К примеру, в листинге A показан демонстрационный файл последовательности boot-to-da.xml, определяющий последовательность операций по запуску системы с агентом развертывания ADS. Код в метке A демонстрирует эталонную схему ADS XML; код в метке B содержит описание задачи данной последовательности. Код в метке C выполняет эту задачу (т. е. загружает операционную систему с агентом развертывания).
Можно оптимизировать процесс развертывания, используя задания в файле последовательности в различных сочетаниях. К примеру, существует возможность модифицировать последовательности так, чтобы на локальный диск копировались дополнительные файлы или чтобы в содержимое реестра вносились те или иные изменения. Все файлы последовательностей хранятся на сервере ADS в папке C:program filesMicrosoft adssamplessequences. Более подробная информация о файлах последовательностей и о стандартных шаблонах последовательностей содержится в электронной документации ADS.
Переменные устройств
Чтобы создать образ операционной системы, который будет уникальным для каждого компьютера, где выполняется развертывание, необходимо прежде всего, до захвата образа, выполнить на эталоне операционной системы, чей образ будет формироваться, операцию Sysprep. Sysprep «обобщает» образ, удаляя из него такие детали, как ключ продукта, сетевые параметры, а также идентификатор безопасности компьютера SID. Непосредственно по завершении развертывания образа служба автоматического развертывания Automated Deployment Services (ADS) считывает переменные устройств и заменяет строки-заполнители значениями переменных устройств из файла sysprep.inf. Затем ADS перезапускает целевую систему с использованием образа, который в свою очередь дает возможность процессу Sysprep оптимизировать систему в соответствии с информацией из файла sysprep.inf.
Необходимые переменные для устройства (например, имя целевого сервера) можно определить в ADS-оснастке консоли MMC. Кроме того, можно использовать приложение, разработанное на основе компонента ADS Windows Management Instrumentation (WMI). Чтобы задействовать оснастку ADS, нужно открыть диалоговое окно Properties соответствующего устройства и перейти на закладку User, которая показана на рис. A. На этой закладке можно добавлять и настраивать имена и значения переменных.
Затем последовательности ADS смогут считывать значения заданных переменных и использовать их вместо строк-заполнителей в файле Sysprep соответствующего устройства. Демонстрационный файл sysprep.inf, показанный в листинге B , содержит строки-заполнители в метке A (для переменной TimeZone) и в метке B (для переменных ComputerName и ProductKey). В качестве заполнителя можно использовать любую строку; нужно только, чтобы синтаксический анализатор bmstrrep.exe, выполняемый агентом развертывания ADS, мог идентифицировать эту строку. Например, в листинге C содержится последовательность ADS, которая персонифицирует такие содержащиеся в файле sysprep.inf на целевой системе переменные, как ^ADS_COMPUTER_NAME^ и ^ADS_WINDOWS_PRODUCT_KEY^. Обратите внимание, что строка-заполнитель в файле sysprep.inf обрамлена символами ^. Эти символы можно заменить любыми другими, скажем, символами # — лишь бы можно было идентифицировать строку-заполнитель. Код в метке A листинга B выполняет программу bmstrrep.exe, чтобы произвести синтаксический анализ файла, указанного в метке B, заменяя строку ^ADS_WINDOWS_PRODUCT_KEY^ заданным значением переменной $ProductKey$ и т. д. Отметим, что знак доллара — $ — в данной последовательности идентифицирует устройство ADS.