Поделиться через


Развертывание приложения в веб-ферме и синхронизация всех компьютеров в веб-ферме

В этом примере показано, как можно создать сценарий командной строки для выполнения следующих задач в веб-ферме:

  1. Развертывание приложений из пакета разработчика на нескольких компьютерах в веб-ферме.

    Развертывание нового пакета приложений или обновление приложений до новой версии на нескольких компьютерах может быть утомительной задачей. Сценарий, способный отправить пакет на удаленные компьютеры и выполнить развертывание, упрощает эту задачу.

  2. Синхронизация содержимого и конфигурации на всех компьютерах веб-фермы в соответствии с единым компьютером-образцом.

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

В этом примере демонстрируется использование инструмента веб-развертывания (MSDeploy) для развертывания пакета приложений или репликации содержимого и конфигурации одного сервера на все компьютеры веб-фермы. Этот пример будет работать с любым пакетом приложений MSDeploy. Рекомендуется использовать Общий пример приложения Windows Server AppFabric, который был создан для использования с примерами Windows Server AppFabric. Этот пакет приложений находится в файле <примеры>\ Samples\Management\MultiMachineSyncAndDeploy \Code\CalculatorService.zip, где <примеры> — это путь установки примеров AppFabric. Сценарий можно легко изменить под конкретные потребности, например для переименования развертываемого приложения или выполнения синхронизации только в пределах одного сайта.

Примечание

Примеры предназначены только для образовательных целей. Они не предназначены для использования в рабочей среде и не тестировались в ней. Корпорация Майкрософт не предоставляет техническую поддержку для этих примеров.

Предварительные условия

Для запуска примера необходимо два или более компьютеров, отвечающих следующим требованиям.

  1. Служба удаленного агента инструмента веб-развертывания (также называемая "службой агента развертывания") должна быть установлена и запущена на всех компьютерах. По умолчанию AppFabric устанавливает инструмент веб-развертывания, но служба удаленного агента не входит в установку по умолчанию. Добавление службы удаленного агента в имеющейся среде:

    1. Откройте в панели управления раздел Программы и компоненты, выберите пункт Инструмент веб-развертывания и нажмите кнопку Изменить.

    2. В ответ на запрос нажмите кнопку Далее и в следующем окне щелкните Изменить.

    3. Когда появится список компонентов, убедитесь, что пункт Служба удаленного агента имеет пометку Этот компонент будет установлен на локальный жесткий диск и завершите работу мастера установки.

    4. По завершении работы мастера запустите службу, введя команду net start msdepsvc в окне командной строки. Если служба должна автоматически запускаться при запуске Windows, введите команду sc config msdepsvc start=auto в окне командной строки.

    Дополнительные сведения об установке и настройке инструмента веб-развертывания, а также о его установке на компьютере без AppFabric см. на странице http://learn.iis.net/page.aspx/421/installing-the-web-deployment-tool/.

  2. На всех компьютерах, которые будут участвовать в синхронизации, службам Интернета (HTTP) должно быть предоставлено разрешение брандмауэра.

  3. Все компьютеры веб-фермы должны входить в домен, а учетная запись, используемая для синхронизации фермы, должна иметь права администратора на всех компьютерах.

При использовании настраиваемого поставщика иногда может быть полезно определить, распознается ли он службой удаленного агента. Существует два способа определения доступных поставщиков.

  1. С помощью IIS — в диспетчере IIS щелкните правой кнопкой мыши приложение, выберите команду Развернуть и Экспорт приложения. В диалоговом окне Экспорт приложения выберите команду Управлять компонентами. В столбце Поставщики щелкните последнюю пустую строку, а затем стрелку вниз. Отобразится список доступных поставщиков, включающий всех настраиваемых поставщиков, распознанных службой удаленного агента.

  2. С помощью командной строки — в командной строке инструмента веб-развертывания введите команду MSDEPLOY.EXE. В отображенных сведениях будет присутствовать список доступных настраиваемых поставщиков. Дополнительные сведения об установке инструмента веб-развертывания см. в разделе Установка инструмента веб-развертывания.

Пример сценария можно изменить для запуска в недоменных средах. Чтобы узнать больше о вариантах проверки подлинности в инструменте веб-развертывания, ознакомьтесь с описанием параметра authType в статье https://technet.microsoft.com/en-us/library/dd569001(WS.10).aspx.

Расположение примера и файлов

Все файлы, необходимые для запуска примера, находятся в папке <примеры>\Samples\Management\MultiMachineSyncAndDeploy\Code:

  • machines.txt

  • sync.cmd

  • syncOne.cmd

  • deployOne.cmd

Установка и запуск этого примера

Задача 1. Развертывание пакета.

  1. Скопируйте все файлы из папки <примеры>\Samples\Management\SyncConfigFromModelMachine\Code на компьютер администратора.

  2. Измените файл machines.txt, включив в него имена всех компьютеров фермы, к которым необходимо применить пакетные изменения. В каждой строке указывается один компьютер.

  3. Выполните команду sync.cmd -fromPackage <package file path>.

  4. Проверьте файлы журнала на наличие ошибок. На каждом компьютере будет создан отдельный файл журнала с именем sync-MACHINE.log, где вместо слова "MACHINE" будет указано имя компьютера.

Задача 2. Синхронизация с компьютером-образцом.

  1. Если все компьютеры фермы удовлетворяют указанным выше требованиям, можно применить изменения конфигурации приложения или сайта к одному из этих компьютеров. Условимся называть этот компьютер компьютером-образцом.

  2. По завершении настройки скопируйте все файлы из папки <примеры>\Samples\Management\SyncConfigFromModelMachine\Code на компьютер-образец.

  3. Измените файл machines.txt, включив в него имена всех компьютеров фермы, к которым необходимо применить пакетные изменения. В каждой строке указывается один компьютер.

  4. Выполните команду sync.cmd -fromLocalServer и введите Y для подтверждения.

  5. Проверьте файлы журнала на наличие ошибок. На каждом компьютере будет создан отдельный файл журнала с именем sync-MACHINE.log, где вместо слова "MACHINE" будет указано имя компьютера.

Описание примера

Сценарий sync.cmd сначала проверяет указанные пользователем аргументы командной строки:

if "%1"=="" goto print_syntax
if "%1"=="-fromLocalServer" goto sync_server
if "%1"=="-fromPackage" goto sync_package
goto print_syntax

В зависимости от аргумента сценарий вызывает сценарий deployOne.cmd или syncOne.cmd по разу для каждого компьютера, указанного в файле machines.txt. Он делает это с помощью команды "for", вызывая с помощью команды "start" последующий сценарий, чтобы запустить задачу на всех целевых компьютерах одновременно.

for /f %%i in ('type machines.txt') do (start deployOne.cmd %%i %2 %3 )

Или

for /f %%i in ('type machines.txt') do ( start syncOne.cmd %%i %1) 

SyncOne.cmd или DeployOne.cmd — это сценарий, использующий интерфейс командной строки инструмента веб-развертывания msdeploy.exe для синхронизации удаленного веб-сервера IIS с пакетом или всем веб-сервером IIS на локальном компьютере.

msdeploy.exe -verb:sync -source:package=%2 -dest:auto,computername=%1 %3

Или

msdeploy.exe -verb:sync -source:webServer -dest:webServer,computername=%1 %2

Первый параметр — это имя компьютера, переданное из sync.cmd; в качестве второго параметра сценарию deployOne.cmd следует передать путь к файлу пакета. Последний (необязательный параметр) — это любой параметр, который необходимо передать в msdeploy. Это полезно, если необходимо передать дополнительный параметр в инструмент веб-развертывания, не изменяя сценарии. Одним из таких дополнительных параметров может быть "-whatif":

sync.cmd -whatif

Если инструмент веб-развертывания запускается с параметром "-whatif", производится проверка всех ошибок, которые могут возникнуть при выполнении указанной команды, но сама команда не выполняется. Рекомендуется выполнить команду "sync" для производственной среды с параметром "-whatif", чтобы выявить возможные ошибки. Это позволит избежать возникновения несогласованного состояния.

Удаление примера

Чтобы удалить пример, удалите все его файлы с компьютера администратора или компьютера-образца.

Другие ресурсы

Дополнительные сведения об инструменте веб-развертывания см. в статье http://learn.iis.net/page.aspx/346/web-deployment-tool/.

Дополнительные сведения об использовании инструмента веб-развертывания для синхронизации двух серверов IIS 7.0 см. в статье http://learn.iis.net/page.aspx/446/synchronize-iis-70/.

Дополнительные сведения об установке и настройке инструмента веб-развертывания см. в статье http://learn.iis.net/page.aspx/421/installing-the-web-deployment-tool/.

  2011-12-05