Разворачиваем App Fabric на свежесозданном Windows Server скриптами

в 18:11, , рубрики: Без рубрики

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

Вводные:

  • У нас есть Windows Server 2008r2-2012;
  • Приложение – это Windows workflow приложение, работающее в IIS и использующее appfabrichosting.
  • Писать будем на Powershell.

Шаг 1- Windows Features.

По умолчанию, Windows Server не присваивает никаких ролей или фичей при установке. Перед развертыванием приложения необходимо узнать список нужных фичей и установить их.
Весь код, необходимый для этого шага, собран в файл PreRequisites_InstallWindowsFeatures.ps1
Краткое содержание:

  • Импортируем модуль с скриптами
  • Import-Module ServerManager
  • Получаем список фичей, возможных для установки (в них есть отметка: установлена фича или нет)
  • Get-WindowsFeature
  • Ставим фичу
  • Install-WindowsFeature -Name $Feature -Source $windowsDistribLocal

Шаг 2- установка SQL Server- опционально

Для приложений иногда надо поставить MS SQL Server.
Все скрипты собраны в файле SQLServer_Install.ps1
Краткое содержание:

  • Проверить, был ли SQL Server установлен на машине
  • msdn.microsoft.com/en-us/library/ms144259.aspxhttp://blogs.msdn.com/b/buckwoody/archive/2009/03/11/find-those-rogue-sql-servers-in-your-enterprise-with-powershell.aspx
  • Получение списка установленных компонентов SQLSERVER. Ничего умнее, чем «запросить через WMI» в интернете не найдено
  • $selectSQLFeaturesQuery=«SELECT * FROM Win32_Product WHERE Name LIKE '%SQL%'»
  • $SQLFeatures = gwmi -query $selectSQLFeaturesQuery -ErrorAction Stop
  • SQL Server нужен .NET 3.5 для некоторых компонент. Если его нет, надо поставить — это аналогично установке Install-WindowsFeature
  • Инсталляция самого SQL Server. SQL Server можно поставить без интерфейса. Для этого нужно запустить инсталятор локально. Дойти до шага «Ready To Install», и там внизу будет путь, по которому будет находиться сгенерированный файл на основе наших текущих настроек. Вот этот файл скопировать и при запуске инсталлятора из скрипта указать к нему путь.
  • Setup.exe /ConfigurationFile= $SQLServerConfigFileFullPath

Шаг 3. Установка Web platform installer/Web deploy.

Все скрипты в PreRequisits_MSI.ps1
В целом, это просто запуск msi из консоли и ничего сложного. WebDeploy нужен для обновления приложений, а WebPlatformInstaller — для установки компонентов.

Шаг 4. Установка AppFabric
В AppFabric для Windows Server есть 2 части: Hosting, Caching. Для нашего случая был нужен только hosting. AppFabricиспользует 2 базы данных: InstanceStore/MonitoringStore

  • Первый шаг — добавление строк подключения к InstanceStore/MonitoringStore в IIS. technet.microsoft.com/en-us/library/cc753034(v=ws.10).aspx;
  • Установить инсталлятор AppFabric. Это тоже msi, но его можно более тонко настроить, чтобы он установил только нужные фичи ;
  • Сконфигурировать настройки AppFabric в IIS. Связать строки подключения баз данных и настройки InstanceStore/MonitoringStore. AppFabric_Configure.ps1

Сами базы данных нужно еще и настроить, если это не было сделано ранее.
Делается это скриптом AppFabric_InitializeDB.ps1

Стартовая точка всех скриптов:

Prerequisites_MainLocal.ps1
Что ставить, что не ставить, по каким путям находятся инсталляторы – всё это конфигурируется в файле: Prerequisites_Main.config
Все списки WindowsFeature, SqlComponents конфигурируются в текстовых файлах.

В результате

В итоге, мы получаем Windows Server со всеми необходимыми установленными WindowsFeatures. Если нужно, то и с установленным SQL Server. Настроенным AppFabric. Все что касается настройки сервера, сделано. Осталось установить сами приложения.

Ограничения скриптов

Эти скрипты лучше запускать из-под администратора сервера, все-таки установка Windows фичей. Настройки SQL Server для AppFabric требуют не менее, чем SA. Поэтому тоже нужны права максимальные.

Автор: SychevIgor

Источник

Поделиться

* - обязательные к заполнению поля