Разворачиваем App Fabric на свежесозданном Windows Server скриптами
Занимался недавно вопросом разворачивания приложения на только что установленном 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. Поэтому тоже нужны права максимальные.