Настройка локального диспетчера конфигураций

Область применения: Windows PowerShell 5.0

Локальный диспетчер конфигураций (LCM) — это подсистема Desired State Configuration (DSC). LCM работает на каждом целевом узле и отвечает за синтаксический анализ и применение конфигураций, передаваемых на узел. Кроме того, он отвечает за ряд других аспектов DSC, включая следующие.

  • Определение режима обновления (принудительное или по запросу).
  • Указание периодичности извлечения и применения конфигураций узлом.
  • Связывание узла с опрашивающей службой.
  • Указание частичных конфигураций.

Использование специального типа конфигурации при настройке LCM для решения каждой из этих задач. Настройка LCM описывается в следующих разделах.

В Windows PowerShell 5.0 появились новые параметры для управления локальным диспетчером конфигураций. Сведения о настройке локального диспетчера конфигураций в Windows PowerShell 4.0 см. в разделе Настройка локального диспетчера конфигураций в предыдущих версиях Windows PowerShell.

Написание и применение конфигурации НОК

Для настройки LCM нужно создать и запустить определенный тип конфигурации, в которой применяются параметры LCM. Для указания конфигурации LCM используйте атрибут DscLocalConfigurationManager. Ниже показана простая конфигурация, которая переводит LCM в режим принудительного применения.

[DSCLocalConfigurationManager()]
configuration LCMConfig
{
    Node localhost
    {
        Settings
        {
            RefreshMode = 'Push'
        }
    }
}

Процесс применения параметров к LCM аналогичен применению конфигурации DSC. Создается конфигурация LCM, затем она компилируется в MOF-файл и применяется к узлу. В отличие от конфигураций DSC конфигурация LCM не применяется с помощью командлета Start-DscConfiguration. Вместо этого вызовите Set-DscLocalConfigurationManager, указав в качестве параметра путь к MOF конфигурации LCM. После применения конфигурации LCM можно просмотреть свойства LCM, вызвав командлет Get-DscLocalConfigurationManager.

Конфигурация LCM может содержать блоки лишь для ограниченного набора ресурсов. В предыдущем примере вызывался только ресурс Settings. Другие доступные ресурсы:

  • ConfigurationRepositoryWeb: указывает опрашивающую HTTP-службу для конфигураций.
  • ConfigurationRepositoryShare: указывает общий ресурс SMB для конфигураций.
  • ResourceRepositoryWeb: указывает опрашивающую HTTP-службу для модулей.
  • ResourceRepositoryShare: указывает общий ресурс SMB для модулей.
  • ReportServerWeb: указывает опрашивающую HTTP-службу для отправки отчетов.
  • PartialConfiguration: предоставляет данные для включения частичных конфигураций.

Основные параметры

Все свойства LCM, кроме конечных точек и путей для опрашивающей службы, а также частичных конфигураций, настраиваются в блоке Settings. В блоке Settings доступны следующие свойства:

Свойство Тип Описание
ActionAfterReboot строка Указывает, что будет происходить после перезагрузки в процессе применения конфигурации. Возможные значения: ContinueConfiguration и StopConfiguration.
  • ContinueConfiguration: продолжение применения текущей конфигурации после перезагрузки компьютера. Это значение по умолчанию.
  • StopConfiguration: остановка текущей конфигурации после перезагрузки компьютера.
AllowModuleOverwrite bool Укажите значение $TRUE, если новые конфигурации, загружаемые из опрашивающей службы, могут заменять старые конфигурации, которые уже есть на целевом узле. Если это не нужно, используйте значение $FALSE.
CertificateID строка Отпечаток сертификата, защищающего учетные данные, которые передаются в конфигурацию. Дополнительные сведения см. в статье Защита учетных данных в службе настройки требуемого состояния Windows PowerShell.
Примечание. При использовании опрашивающей службы DSC в службе автоматизации Azure это осуществляется автоматически.
ConfigurationDownloadManagers CimInstance[] Устаревшее. Для определения конфигурации конечных точек опрашивающей службы используйте блоки ConfigurationRepositoryWeb и ConfigurationRepositoryShare.
ConfigurationID строка Обеспечивает обратную совместимость с более ранними версиями опрашивающей службы. GUID, определяющий файл конфигурации, который будет получен из опрашивающей службы. Если указано имя MOF конфигурации ConfigurationID.mof, узел извлекает конфигурации из опрашивающей службы.
Примечание. Если это свойство задано, регистрация узла в опрашивающей службе с помощью параметра RegistrationKey осуществляться не будет. Дополнительные сведения см. в статье Настройка опрашивающего клиента с использованием имен конфигураций.
ConfigurationMode строка Указывает, каким образом LCM фактически применяет конфигурацию к целевым узлам. Возможные значения: ApplyOnly,ApplyAndMonitor и ApplyAndAutoCorrect.
  • ApplyOnly: DSC применяет конфигурацию и не выполняет никаких действий, пока новая конфигурация не будет перенесена в целевой узел или пока из службы не будет получена новая конфигурация. После первоначального применения новой конфигурации DSC не проверяет наличие отклонений от ранее настроенного состояния. Обратите внимание, что DSC будет пытаться применить конфигурацию, пока она не будет успешно применена, до вступления в силу ApplyOnly.
  • ApplyAndMonitor: Это значение по умолчанию. LCM применяет любую новую конфигурацию. Если после начального применения новой конфигурации состояние целевого узла отклоняется от требуемого, DSC сообщает о расхождении в журналах. Обратите внимание, что DSC будет пытаться применить конфигурацию, пока она не будет успешно применена, до вступления в силу ApplyAndMonitor.
  • ApplyAndAutoCorrect: DSC применяет все новые конфигурации. После первого применения новой конфигурации в случае, если целевой узел отклоняется от желаемого состояния, DSC сообщает о расхождении в журналах и применяет текущую конфигурацию заново.
ConfigurationModeFrequencyMins UInt32 Частота проверки и применения текущей конфигурации в минутах. Это свойство пропускается, если свойство ConfigurationMode имеет значение ApplyOnly. Значение по умолчанию — 15.
DebugMode строка Возможные значения: None, ForceModuleImport и All.
  • Для использования кэшированных ресурсов укажите значение None. Это значение по умолчанию, и его следует использовать в рабочих сценариях.
  • При выборе значения ForceModuleImport LCM будет перезагружать модули ресурсов DSC, даже если они уже загружены и кэшированы. Это влияет на скорость выполнения операций DSC, поскольку каждый используемый модуль перезагружается. Обычно это значение следует использовать при отладке ресурса.
  • В этом выпуске значение All работает аналогично ForceModuleImport.
RebootNodeIfNeeded bool задайте значение $true, разрешающее ресурсам перезагружать узел, с помощью флага $global:DSCMachineStatus. В противном случае для каждой такой конфигурации узел придется перезагружать вручную. Значение по умолчанию — $false. Чтобы использовать этот параметр, если условие перезагрузки инициируется не с помощью DSC (а например, установщика Windows), объедините этот параметр с ресурсом PendingReboot в модуле ComputerManagementDsc.
RefreshMode строка Указывает, каким образом LCM получает конфигурации. Возможные значения: Disabled, Push и Pull.
  • Disabled: конфигурации DSC для данного узла отключены.
  • Push: конфигурации инициируются вызовом командлета Start-DscConfiguration. Конфигурация применяется к узлу незамедлительно. Это значение по умолчанию.
  • Pull: на узле настраивается регулярная проверка опрашивающей службы или пути SMB на наличие конфигураций. Если это свойство имеет значение Pull, необходимо указать конечную точку HTTP (служба) или путь SMB (общий ресурс) в блоке ConfigurationRepositoryWeb или ConfigurationRepositoryShare.
RefreshFrequencyMins UInt32 Интервал времени (в минутах), с которым LCM проверяет опрашивающую службу на наличие обновленных конфигураций и локальные конфигурации на предмет отклонения. Конфигурация применяется независимо от того, скачано ли обновление. Это значение пропускается, если LCM не настроен в режиме запроса. Значение по умолчанию — 30.
ReportManagers CimInstance[] Устаревшее. Используйте блоки ReportServerWeb, чтобы определить конечную точку для отправки данных отчетов в опрашивающую службу.
ResourceModuleManagers CimInstance[] Устаревшее. Используйте блоки ResourceRepositoryWeb и ResourceRepositoryShare, чтобы определить конечные точки HTTP для опрашивающей службы или пути SMB соответственно.
PartialConfigurations CimInstance Не реализовано. Не используйте.
StatusRetentionTimeInDays UInt32 Число дней, в течение которых LCM сохраняет состояние текущей конфигурации.

Примечание

LCM запустит цикл ConfigurationModeFrequencyMins на основе:

  • Новая метаконфигурация с изменением ConfigurationModeFrequencyMins применяется с помощью Set-DscLocalConfigurationManager.
  • Перезагрузка компьютера.

В любой ситуации, когда в процессе таймера возникает сбой, который обнаруживается в течение 30 секунд, цикл будет перезапущен. Параллельная операция может задержать запуск цикла, если длительность этой операции превышает настроенную частоту цикла, и очередной таймер не запустится. Например, метаконфигурация настроена с частотой опроса в 15 минут, и в момент T1 происходит опрос. Узел не завершает работу 16 минут. Первый 15-минутный цикл игнорируется, и далее запрос произойдет в момент T1+15+15.

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

Опрашивающая служба

Конфигурация LCM поддерживает определение конечных точек опрашивающей службы следующих типов:

  • Сервер конфигурации: репозиторий конфигураций DSC. Определите серверы конфигурации с помощью блоков ConfigurationRepositoryWeb (для веб-серверов) и ConfigurationRepositoryShare (для серверов на основе SMB).
  • Сервер ресурсов: репозиторий ресурсов DSC, упакованных как модули PowerShell. Определите серверы ресурсов с помощью блоков ResourceRepositoryWeb (для веб-серверов) и ResourceRepositoryShare (для серверов на основе SMB).
  • Сервер отчетов: служба, в которую DSC отправляет данные отчетов. Для определения серверов отчетов используется блок ReportServerWeb. Сервер отчетов должен быть веб-службой.

Дополнительные сведения об опрашивающей службе см. в разделе Опрашивающая служба Desired State Configuration.

Блоки сервера конфигураций

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

Свойство Тип Описание
AllowUnsecureConnection bool Укажите значение $TRUE, чтобы разрешить подключение между узлом и сервером без проверки подлинности. Укажите значение $FALSE, чтобы требовать проверку подлинности.
CertificateID строка Отпечаток сертификата, который используется для проверки подлинности на сервере.
ConfigurationNames String[] Массив имен конфигураций для опроса целевым узлом. Используется, только если узел зарегистрирован в опрашивающей службе с использованием свойства RegistrationKey. Дополнительные сведения см. в статье Настройка опрашивающего клиента с использованием имен конфигураций.
RegistrationKey строка GUID регистрации узла в опрашивающей службе. Дополнительные сведения см. в статье Настройка опрашивающего клиента с использованием имен конфигураций.
ServerURL строка URL-адрес службы настройки.
ProxyURL* строка URL-адрес прокси-сервера HTTP для взаимодействия со службой настройки.
ProxyCredential* pscredential Учетные данные для прокси-сервера HTTP.

Примечание

Поддерживаются в Windows 1809 и более поздних версиях.

Доступен пример скрипта, который упрощает настройку значения ConfigurationRepositoryWeb для локальных узлов. См. раздел Создание метаконфигураций DSC.

Для определения SMB-сервера конфигураций используется блок ConfigurationRepositoryShare. Блок ConfigurationRepositoryShare определяет следующие свойства:

Свойство Тип Описание
Учетные данные MSFT_Credential Учетные данные для проверки подлинности в общей папке SMB.
SourcePath строка Путь к общей папке SMB.

Блоки сервера ресурсов

Чтобы определить веб-сервер ресурсов, создайте блок ResourceRepositoryWeb. Блок ResourceRepositoryWeb определяет следующие свойства:

Свойство Тип Описание
AllowUnsecureConnection bool Укажите значение $TRUE, чтобы разрешить подключение между узлом и сервером без проверки подлинности. Укажите значение $FALSE, чтобы требовать проверку подлинности.
CertificateID строка Отпечаток сертификата, который используется для проверки подлинности на сервере.
RegistrationKey строка GUID для идентификации узла в опрашивающей службе.
ServerURL строка URL-адрес сервера конфигураций.
ProxyURL* строка URL-адрес прокси-сервера HTTP для взаимодействия со службой настройки.
ProxyCredential* pscredential Учетные данные для прокси-сервера HTTP.

Примечание

Поддерживаются в Windows 1809 и более поздних версиях.

Доступен пример скрипта, который упрощает настройку значения ResourceRepositoryWeb для локальных узлов. См. раздел Создание метаконфигураций DSC

Для определения SMB-сервера ресурса создается блок ResourceRepositoryShare. Блок ResourceRepositoryShare определяет следующие свойства:

Свойство Тип Описание
Учетные данные MSFT_Credential Учетные данные для проверки подлинности в общей папке SMB. Пример передачи учетных данных см. в разделе Настройка опрашивающего SMB-сервера DSC
SourcePath строка Путь к общей папке SMB.

Блоки сервера отчетов

Для определения сервера отчетов создается блок ReportServerWeb. Роль сервера отчетов несовместима с опрашивающей службой на основе SMB. Блок ReportServerWeb определяет следующие свойства:

Свойство Тип Описание
AllowUnsecureConnection bool Укажите значение $TRUE, чтобы разрешить подключение между узлом и сервером без проверки подлинности. Укажите значение $FALSE, чтобы требовать проверку подлинности.
CertificateID строка Отпечаток сертификата, который используется для проверки подлинности на сервере.
RegistrationKey строка GUID для идентификации узла в опрашивающей службе.
ServerURL строка URL-адрес сервера конфигураций.
ProxyURL* строка URL-адрес прокси-сервера HTTP для взаимодействия со службой настройки.
ProxyCredential* pscredential Учетные данные для прокси-сервера HTTP.

Примечание

Поддерживаются в Windows 1809 и более поздних версиях.

Доступен пример скрипта, который упрощает настройку значения ReportServerWeb для локальных узлов. См. раздел Создание метаконфигураций DSC

Частичные конфигурации

Для определения частичной конфигурации создается блок PartialConfiguration Дополнительные сведения о конфигурациях сеансов см. в разделе Частичные конфигурации DSC. Блок PartialConfiguration определяет следующие свойства:

Свойство Тип Описание
ConfigurationSource string[] Массив имен для серверов конфигураций, определенных ранее в блоках ConfigurationRepositoryWeb и ConfigurationRepositoryShare, из которых извлекается частичная конфигурация.
DependsOn string{} Список имен других конфигураций, которые должны быть завершены до применения этой частичной конфигурации.
Описание строка Текст, используемый для описания частичной конфигурации.
ExclusiveResources string[] Массив ресурсов, эксклюзивных для этой частичной конфигурации.
RefreshMode строка Указывает, как DCS получает эту частичную конфигурацию. Возможные значения: Disabled, Push и Pull.
  • Disabled: эта частичная конфигурация отключена.
  • Push: частичная конфигурация передается на целевой узел с помощью командлета Publish-DscConfiguration. После передачи в службу или получения из нее всех частичных конфигураций для узла можно запустить настройку, вызвав командлет Start-DscConfiguration –UseExisting. Это значение по умолчанию.
  • Pull: на узле настраивается регулярная проверка опрашивающей службы на наличие частичных конфигураций. Если это свойство имеет значение Pull, необходимо указать опрашивающую службу в свойстве ConfigurationSource. Дополнительные сведения об опрашивающей службе службы автоматизации Azure см. в статье Обзор DSC службы автоматизации Azure.
ResourceModuleSource string[] Массив имен для серверов ресурсов, с которых следует скачивать необходимые ресурсы для этой частичной конфигурации. Эти имена должны ссылаться на конечные токи службы, ранее определенные в блоках ResourceRepositoryWeb и ResourceRepositoryShare.

Примечание

DSC в службе автоматизации Azure поддерживает частичные конфигурации. Но из каждой учетной записи службы автоматизации можно получить только одну конфигурацию на один узел.

См. также:

Основные понятия

Обзор Desired State Configuration

Начало работы с DSC в службе автоматизации Azure

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

Set-DscLocalConfigurationManager

Настройка опрашивающего клиента с именами конфигураций