Установка и настройка типовых сервисов IIS под Windows Server 2008 R2 Core
Среда, 8 декабря, 2010 Оставьте комментарий
Почему Server core?
Windows Server, часто разворачивается для поддержания какой-либо определенной роли или нагрузки. Более того при правильно организованной структуре он устанавливается один раз и дальше управляется удаленно, через внешние оснастки.
Так же Server core дает уменьшение возможностей для вредоносного кода. За счет того что из него вырезаны многие компоненты, ненужные в серверной работе. По статистике для Server core сейчас идет около 35% всех обновлений Windows 2008 и приблизительно 59% критических обновлений. Что естественно уменьшает требования к его перезагрузке
Вырезание компонентов так же дало еще одно преимущество. Уменьшение требований к аппаратной части в особенности к оперативной памяти и месту на диске. Рекомендуемые требования для установки Server core составляют минимум 512 Мб оперативной памяти, а чистая установка занимает всего около 8 Гб. Для одного сервера установленного на современной серверной платформе это может быть и не сильно актуально. А вот при условии использования виртуализации множества серверов, это может дать ощутимое преимущество и позволит установить больше серверов на то же железо, по сравнению с «обычным» Windows Server 2008 R2.
Развитие IIS для Server core
Возможность установки IIS для Server core была еще в Windows Server 2008. Однако на нем не было возможности установить .NET. Так же там нельзя было установить PowerShell. Что, по моему мнению, является главным недостатком Windows Server 2008 Core. Конечно, через некоторое время специалисты смогли его установить .NET и запустить PowerShell (http://dmitrysotnikov.wordpress.com/2008/05/15/powershell-on-server-core/) но все равно это не являлась рекомендованной Microsoft процедурой. Как следствие использовать в производстве, это было возможно только на усмотрение Администратора. В Windows Server 2008 R2 поддержка .NET уже реализована и это дает возможность реализации на нем всех задач современного веб сервера, а так же использовать среду PowerShell.
Вторым недостатком Windows Server 2008 Core была его не оптимизированность для настройки. Вся установка осуществлялась из командной строки. В систему не было включено никаких оболочек, позволявшие облегчить настройку. И опять же в скором времени было выпущено множество программ для комфортной установки компонентов (http://www.samag.ru/cgi-bin/go.pl?q=articles;n=02.2009;a=03). Именно поэтому в Windows Server 2008 R2 был введен скрипт начальной установки sconfig, Позволивший значительно упростить первичную установку сервера.
IIS 7.5 на Windows Server 2008 R2 Core позволяет использовать все те же возможности что и «обычный» Windows Server 2008 R2. А именно имеет поддержку WebDAV и FTP, модулей IIS для PowerShell и т.д.
Первичная настройка Server core
После установки Windows Server 2008 R2 в режиме Server Core и ввода логина и пароля мы видим командную строку и … все. Добро пожаловать в мир Server Core J
Первое что нужно сделать с любой серверной системой, это настроить сеть. Для этого запускаем скрипт первичной настройки sconfig и выбираем пункт 8
Дальше настройка осуществляется в интуитивно понятном окружении, и я его не буду описывать. Так же можно воспользоваться настройкой из командной строки с помощью утилиты netsh
Для того чтобы посмотреть текущие подключения вводим:
netsh interface ipv4 show interfaces
И определяем номер нашего подключения. После командой:
netsh interface ipv4 set address name=»3″ source=static address=192.168.1.3 mask=255.255.255.0
где name=»3″ есть номер вашего подключения
DNS сервер добавляется командой
netsh interface ipv4 add dnsserver name=»3″ address=192.168.1.2 index=1
При желании ввод в домен осуществляется так же из скрипта настройки sconfig или с помощью команды
netdom join %computername% /domain:test.local /userd:Administrator /passwordd:*
Активация Wnidows осуществляется с помощью специального скрипта скрипта
cscript C:\Windows\System32\slmgr.vbs
После перезагрузки нам необходимо будет включить среду PowerShell которая по умолчанию выключена. Осуществляется это так же из sconfig. После его запуска выбираем пункт 4
Пункт 2 подменю настройки удаленного управления, включает PowerShell. Из командной строки запуск установки осуществляется с помощью данной команды
start /w ocsetup MicrosoftWindowsPowerShell
После перезагрузки мы получим среду PowerShell на нашем сервере.
Так же рекомендую включить удаленное. За это ответственна служба WinRM. Опять используем sconfig и 4 пункт, или используем командную строку.
winrm quickconfig
После этого нам станет доступна удаленная консоль диспетчера сервера, появившаяся в Windows Server 2008 R2
И в конце можно включить удаленный рабочий стол (RDP). В sconfig это 7 пункт. А вот в командной строке придется воспользоваться отдельным скриптом
cscript C:\Windows\System32\Scregedit.wsf /ar 0
Внимание: Для того чтобы подключатся к серверу с клиентов ниже чем Windows Vista/Windows Server 2008 надо отключить высокий уровень безопасности, установленный по умолчанию.
cscript C:\Windows\System32\Scregedit.wsf /cs 0
Разрешение протокола RDP на брандмауэре осуществляется знакомой нам утилитой netsh
netsh advfirewall firewall set rule group=»Remote Desktop» new enable=yes
Установка и настройка IIS
Как бы не была хороша утилита sconfig в первичной настройки, но она не позволяет устанавливать роли и компоненты Windows Server. Я рекомендую использовать для этого бесплатную оболочку Core configurator 2.0 (http://coreconfig.codeplex.com/) написанную в среде PowerShell. Данная оболочка обладает почти всеми возможностями «обычной» панели управления и позволяет интуитивно понятно настроить сервер. Записать программу на сервер вы можете любым удобным для вас способом. Запуск оболочки, после установки, осуществляется файлом Start_Coreconfig.wsf.
Установка ролей осуществляется из меню Computer setting\Add or Remove Roles
Или можно установить их из командной строки. Для установки по умолчанию достаточно применить данную команду. Внимание, имена компонентов чувствительны к регистру
start /w pkgmgr /l:log.etw /iu:IIS-WebServerRole;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI
Полная установка это небольшая строка в 924 символа J
start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HttpRedirect;IIS-ApplicationDevelopment;IIS-ASP;IIS-CGI;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-ServerSideIncludes;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-HttpTracing;IIS-CustomLogging;IIS-ODBCLogging;IIS-Security;IIS-BasicAuthentication;IIS-WindowsAuthentication;IIS-DigestAuthentication;IIS-ClientCertificateMappingAuthentication;IIS-IISCertificateMappingAuthentication;IIS-URLAuthorization;IIS-RequestFiltering;IIS-IPSecurity;IIS-Performance;IIS-HttpCompressionStatic;IIS-HttpCompressionDynamic;IIS-WebServerManagementTools;IIS-ManagementScriptingTools;IIS-IIS6ManagementCompatibility;IIS-Metabase;IIS-WMICompatibility;IIS-LegacyScripts;IIS-FTPPublishingService;IIS-FTPServer;WAS-WindowsActivationService;WAS-ProcessModel
Удаленное управление, включается поле установки компонента IIS-ManagementService
start /w ocsetup IIS-ManagementService
После необходимо включить удаленное управление сервером IIS, для этого добавляем ключ в реестр
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WebManagement\Server /v EnableRemoteManagement /t REG_DWORD /d 1
и включаем службу удаленного управления WMSvc. Сделать это можно из Core Configurator или с помощью команды
net start wmsvc
Замечу, что мы только запускаем службу. Чтобы установить ее автоматический запуск с сервером можно воспользоваться, например, данной PowerShell командой
set-service wmsvc -startuptype automatic
После этого к серверу можно будет подключаться снаружи, из Windows Server 2008 R2, с помощью консоли управления IIS.
Или с помощью Модулей IIS для PowerShell. Для их установки нужно разрешить запуск неподписанных скриптов, например
set-executionPolicy remoteSigned
и импортировать модули
import-module WebAdministration
Для постоянной работы рекомендуется добавить импорт модулей в профиль PowerShell.
Заключение
Данная статья описывает только настройку Windows Server 2008 R2 в режиме Server core. Но уже видно, что с его выходом мы получили отличную платформу для веб серверов, потребляющую мало ресурсов. Она позволяет использовать всю мощь технологии ASP .NET и вести удаленное управление множеством серверов, в том числе и на Windows Server 2008 с соответствующими ограничениями в виде отсутствия поддержки .NET и PowerShell