Pages Menu
Rss
Categories Menu

Опубликовано | Нет комментариев

Конфигурация желаемого состояния (Desired State Configuration)

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

Desired State Configuration

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

DSC Local Configuration Manager

Один из ключевых компонентов DSC - Local Configuration Manager (LCM), механизм DSC, отвечающий за обработку и ввод конфигурационных документов (.mof файлов).

LCM принимает (режим push), извлекает (режим pull), применяет, контролирует, сравнивает, сообщает о дрейфе и применяет (или повторно использует) документы конфигурации. Излишне говорить, что LCM - это сердце и мозг DSC.

Windows Server 2016 поставляется с предустановленными Windows Management Framework 5.1 и DSC. DSC был представлен с Windows Management Framework 4.0 (также доступна загрузка для более ранних версий Windows) и был установлен в Windows Server 2012 R2 и Windows 8.1. Как и следовало ожидать, в Windows Management Framework 5.1, в DSC и LCM появилось много новых функций и изменений.

Вы можете настроить LCM и DCS-двигатель, применив документ Meta Configuration (meta.mof). На поведение и действия LCM можно влиять и контролировать, изменяя свойства Meta Configuration.

DSC v2 в Windows Server 2016 основываясь на предыдущей версии, предлагает новые командлеты для управления конфигурациями, новый LCM с дополнительной функциональностью, новые атрибуты Meta Configuration и новые функции, такие как частичные конфигурации и межмашинная синхронизация.

LCM реализуется как общая информационная модель/Common Information Model (CIM) класса MSFT_DSCLocalConfigurationManager в корневом пространстве имён \Microsoft\Windows\DesiredStateConfiguration.

Давайте рассмотрим новую функциональность и работу LCM v2 на Windows Server 2016.

DSC, для доступа к LCM, предоставляет два командлета - просмотр и обновление свойств LCM: Get-DSCLocalConfigurationManager для просмотра и Set-DSCLocalConfigurationManager для настройки. Запуск Get-DSCLocalConfigurationManager на Windows Server 2016 Windows, в консоли PowerShell, перечисляет все свойства конфигурации метаданных LCM вместе с их текущими значениями.

Значения по умолчанию показаны в следующих выходных данных:

PS C:\> Get-DscLocalConfigurationManager

ActionAfterReboot : ContinueConfiguration
AgentId : C8F7308B-6E6D-11E6-899F-B4AE2BEB7DE5
AllowModuleOverWrite : False
CertificateID :
ConfigurationDownloadManagers : {}
ConfigurationID :
ConfigurationMode : ApplyAndMonitor
ConfigurationModeFrequencyMins : 15

Credential :
DebugMode : {NONE}
DownloadManagerCustomData :
DownloadManagerName :
LCMCompatibleVersions : {1.0, 2.0}
LCMState : Idle
LCMStateDetail :
LCMVersion : 2.0
StatusRetentionTimeInDays : 10
SignatureValidationPolicy : NONE
SignatureValidations : {}
MaximumDownloadSizeMB : 500
PartialConfigurations :
RebootNodeIfNeeded : False
RefreshFrequencyMins : 30
RefreshMode : PUSH
ReportManagers : {}
ResourceModuleManagers : {}
PSComputerName :

LCM, в Windows Server 2016, для обратной совместимости включает все свойства из первой версии. Большинство из этих свойств необходимы и в новой версии, но некоторые устарели и не могут использоваться для настройки LCM в Windows PowerShell V5.

Дополнительная информация. Для получения полной информации о всех доступных свойствах Meta Configuration и последней информации перейдите на страницу https://msdn.microsoft.com/powershell/dsc/metaconfig.

С новыми параметрами LCM, вместо одной конфигурации, можно иметь несколько её фрагментов. Свойства более организованы, каждый с чётко определённым использованием. Вы можете запросить текущее состояние LCM, включить и отключить кэширование и отдельные конечные точки URL для конфигураций и ресурсов.

В Windows PowerShell V4, DSC, для настройки свойств конфигурации метаданных LCM, использовал специальный ресурс LocalConfigurationManager. Этот ресурс для LCM в Windows PowerShell V5 устарел. Вы можете использовать его для настройки LCM v2; однако он не может настроить новые свойства Meta Configuration. Вместо этого, для задания свойств LCM, рекомендуется использовать новый ресурс параметров.

Вы можете установить свойства MetaConfiguration, выполнив несколько последовательных шагов. Как уже упоминалось, в LCM v2, для настройки свойств Meta Configuration LCM, следует использовать новый специальный ресурс "Settings". Вы должны поместить этот новый ресурс в сценарий конфигурации и запустить его. Запуск ресурса генерирует файл meta.mof, который отправляется в LCM сервера назначения. LCM целевого сервера применяет и изменяет значения свойств Meta Configuration.

Обратите внимание, что конфигурация LCM в обычной конфигурации, содержащей общие ресурсы DSC не допускается. Наряду с ресурсом «Настройки» в LCM v2 включены ещё несколько, специфичных для LCM, ресурсов. Эти ресурсы LCM обеспечивают лучший авторский опыт и в конечном итоге изменяют доступные в ресурсе Settings свойства. Они сводятся к следующему:

- Settings. Это основной ресурс LCM Meta Configuration.
- ConfigurationRepositoryWeb. Этот ресурс представляет Internet Information Services (IIS) Open Data Protocol (OData), конечную точку для опрашивающих серверов. Он изменяет свойство ConfigurationDownloadManages ресурса Settings.

Обладает следующими свойствами:

- ConfigurationNames
- ServerUrl
- AllowUnsecureConnection
- CertificateID
- RegistrationKey

- ConfigurationRepositoryShare. Этот ресурс представляет Server Message Block (SMB) конечную точку общего доступа для опрашивающих серверов. Он изменяет свойство ConfigurationDownloadManages ресурса Settings.

Обладает следующими свойствами:

- SourcePath
- Credential

- ResourceRepositoryWeb. Этот ресурс представляет конечную точку IIS OData для загрузки DSC ресурсов с помощью служб IIS. Этот ресурс изменяет свойство ResourceModuleManagers ресурса Settings.

Обладает следующими свойствами:

- AllowUnSecureConnection
- ServerUrl
- CertificateID
- RegistrationID

ResourceRepositoryShare. Этот ресурс представляет конечную точку OData IIS для загрузки ресурсов DSC с использованием общих ресурсов SMB. Этот ресурс изменяет свойство ResourceModuleManagers ресурса Settings.

Обладает следующими свойствами:

- SourcePath
- Credential

- ReportServerWeb. Этот ресурс представляет конечную точку IIS OData для предоставления данных отчётов, связанных с узлами, их текущих конфигураций и дрейфов. Этот ресурс изменяет свойство ResourceModuleManagers ресурса Settings.

Обладает следующими свойствами:

- ServerUrl
- CertificateID
- RegistrationKey
- AllowUnsecureConnection

- PartialConfiguration. Этот ресурс представляет имя конфигурации, которое должны быть получено от опрашивающего сервера. В конфигурации можно иметь несколько ресурсов PartialConfiguration. Этот ресурс изменяет свойство PartialConfigurations ресурса Settings.

Обладает следующими свойствами:

- DependsOn
- RefreshMode
- RefreshModuleSource
- Description
- ExclusiveResources
- ConfigurationSource

Подробнее. Для более подробного изучения предыдущих блоков перейдите на https://msdn.microsoft.com/powershell/dsc/metaconfig.

Ниже приводится типичная реализация конфигурации свойств Meta Configuration в LCM v2:

реализация_конфигурации_свойств_MetaConfiguration

Предыдущий сценарий похож на общую конфигурацию DSC с конфигурацией ChangeLCMProperties, но включает в себя определённый атрибут DSCLocalConfigurationManager. Этот атрибут предусматривает, что все ресурсы в конфигурации должны быть связаны только с LCM и должны присутствовать в конфигурациях, связанных с LCM.

При использовании других общих ресурсов в конфигурации возникает ошибка. Сценарий содержит один узел для сервера DemoServerWin.

Основной ресурс для установки свойств LCM - ресурс "Settings". В этом примере мы задаём некоторые его свойства и присваиваем им значения. Например, чтобы машина перезапустилась (когда это требуется ресурсом), для режима обновления - установлено значение Pull; режим конфигурации был изменён на ApplyandAutoCorrect, а ConfigurationID был предоставлен с допустимым идентификатором GUID. Представленная GUID конфигурация будет взята с опрашивающего сервера.

В этой конфигурации существует два опрашивающих сервера, обозначенных PullServer1 и PullServer2. Свойство ServerURL показывает, что они находятся на одном сервере с различными номерами портов. Кроме того AllowUnsecureConnection делает возможным использование HTTP вместо HTTPS протокола. Информация о соответствии сервера предоставлена ReportServerWeb.

Есть две частичные конфигурации, которые должны быть загружены LCM и применены на своём сервере как одна конфигурация. Partial Configuration IISInstall отвечает за загрузку конфигурации с именем IISInstall из PullServer1. Partial Configuration IndexFile отвечает за загрузку конфигурации с именем IndexFile из PullServer2. Кроме того, запуск частичной конфигурации IndexFile, в лице свойства DependsOn, зависит от завершения конфигурации IISInstall. Конфигурация IndexFile может запуститься только после применения конфигурации IISInstall.

После определения конфигурации, она запускается для генерации в C:\DSC - .mof-файла (DemoServerWin.Meta.mof). Расположение папки предоставляется с помощью параметра OutputPath. После создания .mof файла, для его передачи и применения на сервере DemoServerWin используется командлет Set-DSCLocalConfigurationManager.

После применения конфигурации, LCM на сервере DemoServerWin, настроено получение частичных конфигураций с нескольких опрашивающих серверов и периодическое их применение.

Затем, используя Get-DSCLocalConfigurationManager, как показано в следующем примере, вы можете просмотреть новую конфигурацию:

PS C:\Users\me> Get-DscLocalConfigurationManager

ActionAfterReboot : ContinueConfiguration
AgentId : C8F7308B-6E6D-11E6-899F-B4AE2BEB7DE5
AllowModuleOverWrite : False
CertificateID :
ConfigurationDownloadManagers : {[ConfigurationRepositoryWeb]PullServer1, [ConfigurationRepositoryWeb]PullServer2}
ConfigurationID : fcd03a8d-5a64-4982-92b3-5c89680add39
ConfigurationMode : ApplyAndAutoCorrect
ConfigurationModeFrequencyMins : 15
Credential :
DebugMode : False
DownloadManagerCustomData :
DownloadManagerName :
LCMCompatibleVersions : {1.0, 2.0}
LCMState : Ready
LCMVersion : 2.0
MaximumDownloadSizeMB : 500
StatusRetentionTimeInDays : 7
PartialConfigurations : {[PartialConfiguration]IISInstall, [PartialConfiguration]IndexFile} RebootNodeIfNeeded : True
RefreshFrequencyMins : 30
RefreshMode : PULL
ReportManagers : [ReportServerWeb]ComplianceServer
ResourceModuleManagers : {}
PSComputerName :

В предыдущем блоке кода свойство ConfigurationDownloadManagers заполняется двумя значениями, представляющими два опрашивающих сервера: PartialConfigurations имеет два значения, представленные конфигурациями IISInstall и IndexFile, а ReportManagers имеет значение ComplianceServer.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.


↓