В LCM v2 появилось три новых метода: GetConfigurationStatus, GetConfigurationResultOutput и SendConfigurationApplyAsync. Давайте кратко рассмотрим их.
Содержание:
GetConfigurationStatus
Метод GetConfigurationStatus извлекает текущее состояние конфигурации сервера. Новый DSC командлет - Get-DSCConfigurationStatus - вызывает метод CIM. Следующий код показывает пример Get-DSCConfigurationStatus:
PS C:\> $cimsession = New-CimSession -ComputerName DemoServerWin10
PS C:\> Get-DscConfigurationStatus -CimSession $cimsession
GetConfigurationResultOutput
Метод GetConfigurationResultOutput предоставляет подробные сведения о текущей конфигурации и дрейфах конфигурации. Командлета DSC, который вызывает этот метод CIM, нет. Вместо этого, вы можете вызвать его с помощью командлета CIM - Invoke-CIMMethod, как показано ниже:
SendConfigurationApplyAsync
Метод SendConfigurationApplyAsync применяет конфигурацию асинхронно к целевому серверу. Это означает, что LCM вызывает этот метод и не ждёт его завершения. Опять же, для вызова этого метода нет командлета DSC. Однако вы можете вызвать его с помощью командлета CIM, как показано в следующем примере:
Частичные конфигурации DSC
Одна из наиболее ожидаемых и интересных функций DSC v2 - частичная конфигурация. До DSC v2, разбить конфигурацию на несколько, созданных для сервера файлов конфигурации было сложно. Частичная конфигурация позволяет разбить конфигурацию на несколько небольших фрагментов для нескольких файлов. Частичные конфигурации реализованы точно так же, как и любые общие конфигурации DSC. Задача LCM на целевом сервере заключается в том, чтобы объединить все фрагменты конфигурации в одну и применить её.
Частичные конфигурации - полностью укомплектованы сами по себе и вы можете применять их независимо друг от друга в качестве завершённой конфигурации к любому серверу. LCM Meta Configuration сконфигурирована на целевом сервере, что позволяет применять частичные конфигурации к любому серверу.
В Windows Server 2016 частичные конфигурации работают в режиме push и pull DSC. Это означает, что вы должны настроить LCM серверов в сети так, чтобы вытаскивать конфигурации с опрашивающих серверов (общий ресурс IIS или SMB) и быть в состоянии чётко определить эту конфигурацию.
Преимущества частичных конфигураций в следующем:
- Конфигурации для серверов в сети независимо и одновременно могут писать несколько авторов.
- К серверам можно применять инкрементные конфигурации, без изменения существующих.
- Доступно модульное создание конфигураций.
- Нет больше зависимости от использования только одного файла .mof. Это имело место в DSC v1, где был разрешён только один, применяемый к серверу в данный момент времени .mof-файл. Новая конфигурация (.mof) заменит текущую конфигурацию в DSC v1.
Чтобы выполнить частичную настройку Windows Server 2016, выполните следующие действия:
- Создайте pull сервер.
- Настройте LCM Meta Configuration серверов в сети.
- Авторизуйте конфигурации.
- Разверните конфигурацию на pull сервере.
Рассмотрим каждый шаг более детально, за исключением создания pull сервера, так как этот процесс аналогичен созданию DSC v1.
Настройка LCM Meta Configuration
Чтобы подготовить LCM Meta Configuration сервера, необходимо установить следующее:
- RefreshMode со значением Pull.
- ConfigurationMode с любым значением, для сохранения сервера в режиме ожидания.
- Экземпляр ресурса ConfigurationRepositoryWeb, представляющий pull сервер, либо веб-сервер, либо SMB.
- Несколько экземпляров ресурса PartialConfiguration, каждый из которых представляет конфигурацию на pull сервере.
В LCM, другим необходимым для решения свойством Meta Configuration, может быть либо ConfigurationID, либо ConfigurationName. Для понимания обоих свойств, посетите следующие две ссылки :
- ConfigurationName
https://msdn.microsoft.com/powershell/dsc/pullclientconfignames
- ConfigurationID
https://msdn.microsoft.com/powershell/dsc/pullclientconfigid
Для демонстрации частичной конфигурации, в следующем примере представлена среда с pull сервером (DemoServerWin10). Существуют две конфигурации, каждая из которых развёрнута на одном из pull серверов. LCM конечного компьютера сконфигурирован с этими двумя pull серверами и конфигурациями. Применённая к серверу DemoServerWin конфигурация LCM, показана ниже:
Предполагая, что на указанных серверах, выгружаемые (pull) серверы уже доступны, вы должны изменить там параметры LCM Meta Configuration и вытаскивать конфигурации уже из них. Предыдущий пример конфигурации имеет узел с именем DemoServerWin. Это означает, что новая конфигурация изменяет конфигурацию LCM DemoServerWin. Атрибут DSCLocalConfigurationManager предусматривает, что в этой конфигурации могут использоваться только, применимые для LCM Meta Configuration ресурсы и это мета конфигурация выведет файл .meta.mof. Общие ресурсы в таких конфигурациях использоваться не могут. Использование этого атрибута - способ указать DSC, что эта конфигурация относится к конфигурации LCM.
Ресурс "Settings" сконфигурирован на установленное на Pull свойство RefreshMode, на установленное на ApplyandAutoCorrect свойство ConfigurationMode и на установленное на fcd03a8d-5a64-4982-92b3- 5c89680add39 свойство ConfigurationID, а свойству RebootNodeIfNeeded установлено значение True. LCM загружает файлы конфигурации с pull сервера, чьё имя имеет тот же идентификатор GUID, что и для ConfigurationID. В предыдущем примере LCM, используя имена с pull сервера, будет загружать файлы конфигурации с fcd03a8d-5a64-4982-92b3-5c89680add39.
Также вам необходимо предоставить LCM, данные об pull сервере. В LCM v2 вы можете сделать это, используя ресурс WebConfigurationRepository. В конфигурации могут быть многостраничные pull серверы (ресурсы WebConfigurationRepository). В предыдущем примере определены два pull сервера: PullServer1 с URL-адресом http://demoserverwin:8080/PSDSCPullServer.svc/, AllowUnsecureConnection установлен в True и PullServer2 с URL-адресом http://Demoserverwin10:8090/PSDSCPullServer.svc/, AllowUnsecureConnection установлено значение True.
Хотя в этом примере показано свойство AllowUnsecureConnection и его установка в True позволяет LCM запрашивать конфигурацию по протоколу HTTP, вместо протокола HTTPS, мы настоятельно рекомендуем в обычных рабочих средах использовать HTTPS.
Ресурс PartialConfiguration определяет конфигурации фрагментов. Определены две частичные конфигурации: IISInstall и IndexFile. На PullServer1 доступна конфигурация IISInstall, тогда как на PullServer2 доступна конфигурация IndexFile.
Важно отметить, что имена частичных конфигураций, должны точно соответствовать именам конфигураций на pull сервере. В следующем разделе будет показано, что конфигурация IISInstall авторизирована и доступна на PullServer1, а конфигурация IndexFile доступна на PullServer1. Свойство ConfigurationSource присоединяет к частичной конфигурации pull сервер.
Также обратите внимание, что URL-адрес, ConfigurationID и имя конфигурации pull сервера, предоставляют LCM полную информацию, однозначно идентифицирующую конфигурацию на pull сервере. Если любой из этих трёх частей информации отсутствует, LCM не сможет получить частичные конфигурации.
Ранее показанная конфигурация создаёт в папке C:\DSC, файл DemoServerWin.meta.mof. Для назначения и применения к DemoServerWin файла .mof, используется командлет Set-DSCLocalConfigurationManager.