Использование DSC для настройки Windows Server

Завершено

Один из других администраторов сервера в компании Contoso имеет опыт работы с Windows PowerShell и предлагает вам исследовать использование PowerShell DSC для настройки вновь развернутых компьютеров Windows Server. Компания Contoso может использовать технологию PowerShell DSC для реализации декларативного управления конфигурацией с помощью сочетания сценариев PowerShell и функций операционной системы. Вы решили продолжить анализ.

Примечание.

Язык декларативного программирования позволяет различать намерение (что нужно сделать) и выполнение (как это нужно сделать).

Что такое DSC?

DSC — это платформа управления на основе PowerShell, которую можно использовать для управления серверами и связанной с ними ИТ-инфраструктурой. DSC состоит из трех компонентов, описанных в следующей таблице.

Компонент Description
Конфигурации Конфигурации — это декларативные скрипты PowerShell, которые настраивают и определяют ресурсы. При выполнении конфигурации DSC применяет конфигурацию в соответствии с ее определением. Это гарантирует, что целевой ресурс (в данном случае сервер) находится в определенном состоянии. Local Configuration Manager (LCM) применяет и поддерживает эти конфигурации.
Ресурсы Ресурсы содержат код, который определяет и применяет требуемое состояние конфигурации ресурса.
LCM LCM — это механизм, который DSC использует для применения конфигураций. Периодически LCM проверяет состояние системы и при необходимости вызывает код в reapplys для повторного применения требуемого состояния.

Примечание.

Нет необходимости ничего устанавливать для использования DSC; PowerShell DSC входит в Windows.

DSC на основе Windows широко использует компонент LCM. Этот компонент выступает в качестве подсистемы выполнения сценариев DSC в Windows PowerShell.

Примечание.

Как и DSC, LCM является неотъемлемой частью всех поддерживаемых в настоящее время версий операционных систем Windows.

LCM отвечает за следующее:

  • Координация реализации параметров, определенных в скриптах DSC
  • Наблюдение за текущим состоянием этих параметров
  • Обновление состояния компьютера в соответствии с требуемым состоянием

При каждом запуске LCM выполняет следующие действия:

  1. Get: возвращает текущее состояние компьютера.
  2. Test: сравнивает текущее состояние узла с требуемым состоянием с помощью скомпилированного сценария DSC (MOF-файла).
  3. Set: обновляет узел в соответствии с требуемым состоянием, описанным в MOF-файле.

Конфигурацию DSC можно развернуть в режиме Push или Pull, как описано в следующей таблице.

Режим Description
Явно (толкать) В этом режиме вам нужно вручную пересылать или отправлять (push) необходимые конфигурации на один или несколько управляемых компьютеров. Компонент LCM гарантирует, что состояние на каждой из управляемых вычислительных машин будет совпадать с заданной вами конфигурацией.
Извлечь В этом режиме опрашиваемый сервер (pull server) сохраняет информацию о заданной вами конфигурации. Компонент LCM, имеющийся на каждом управляемом компьютере, периодически обращается к опрашиваемому серверу (с заданным по умолчанию интервалом в 15 минут), чтобы получить сведения об актуальной конфигурации. Опрашиваемый сервер отправляет данные обо всех изменениях конфигурации обратно на каждый из управляемых компьютеров.

Совет

Хотя можно настроить Windows Server в качестве опрашивающего сервера, можно также использовать настройку требуемого состояния службы автоматизации Azure.

Требования к компьютерам с ОС Windows для платформы DSC

Имеется ряд требований, которым должна удовлетворять рабочая среда, чтобы можно было использовать платформу DSC с ОС Windows. К ним относятся:

  • Операционная система. Компьютеры должны работать под управлением ОС Windows 8.1 или более поздней версии или ОС Windows Server 2012 R2 или более поздней версии.
  • Удаленное управление Windows. На управляемых компьютерах должна быть включена служба удаленного управления Windows (WinRM).

С помощью DSC можно определить нужное состояние:

  • Операционная система
  • Приложение

Работа со скриптами

Для определения DSC можно использовать скрипт. После создания и компиляции конфигурации ее можно назначить машинам, к которым она будет применяться.

Создание сценария

Реализация DSC обычно начинается с создания сценария конфигурации (PS1), который описывает требуемое состояние. Ниже приводится простой пример конфигурации. В этом случае сценарий проверяет наличие службы Internet Information Service (IIS) и устанавливает ее при необходимости.

configuration IISInstall
{
    # Import the required module.
    Import-DscResource -ModuleName PsDesiredStateConfiguration
    node "localhost"
    {
        WindowsFeature IIS
        {
            Ensure = "Present"
            Name = "Web-Server"
        }
    }
}

После создания скрипта сохраните его. В этом случае сохраните его как IISInstall.ps1.

Компиляция конфигурации

После создания скрипта конфигурации его необходимо скомпилировать. При компиляции создается один или несколько .mof-файлов, которые содержат конфигурации, применимые к целевым узлам. Чтобы скомпилировать скрипт, в консоли PowerShell выберите папку, в которой была сохранена конфигурация (файл сценария), и выполните следующие команды, чтобы скомпилировать конфигурацию в MOF-файл:

.\IISInstall.ps1
IISInstall

Применение конфигурации

Следующим шагом является применение конфигурации. Для этого выполните командлет Start-DscConfiguration.

Внимание

Чтобы разрешить выполнение DSC, необходимо настроить Windows для удаленного взаимодействия PowerShell, даже если используется конфигурация localhost.

Например, в консоли PowerShell перейдите к папке, в которой сохранена конфигурация, и выполните следующую команду PowerShell:

Start-DscConfiguration .\IISInstall

Совет

Вы можете проверить успешность настройки, выполнив командлет Get-DscConfigurationStatus.