PowerShell DSC. SharePoint

Пример использования PowerShell Desired State Configuration при работе с SharePoint.

PowerShell Desired State Configuration

Desired State Configuration

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

Как это работает

PowerShell DSC состоит из трех основных компонентов:

  • Конфигурация (DSC Configuration) - декларативно заданная конфигурация, которую необходимо развернуть и/или состояние которой необходимо отслеживать;
  • Ресурсы (DSC Resources) - описание того, как работать с каким-либо модулем (например SharePoint);
  • Менеджер конфигурации (Local Configuration Manager) - механизм, "связывающий" ресурсы для работы с модулями системы и заданную конфигурацию.

В общем сценарий выглядит следующим образом:

  1. Создаем необходимую конфигурацию
  2. Компилируем её с помощью PowerShell DSC
  3. Используем результат на 2 шаге
    • Приводим к необходимому состоянию
    • Проверяем текущее состояние на соответствие
    • Исправляем несоответствия в текущем состояние заданному

Читаем про использование учетных записей и получение сертификата и переходим к Hello World.

Демка

Небольшой пример использования PowerShell DSC в работе с SharePoint 2016, в котором я создам простую конфигурацию, применю её и покажу как отслеживать изменения.

Ресурсы

В примере используются ресурсы (DSC Resources) для работы с SharePoint: xSharePoint.

Если используется PowerShell 4, то качаем их и копируем в папку %ProgramFiles%\WindowsPowerShell\Modules:

Ресурсы xSharePoint

Если установлен PowerShell 5, то получить необходимый модуль можно одним командлетом:

Install-Module -Name xSharePoint -Force

После установки исполняем скрипт

Get-DscResource

и убеждаемся, что необходимые ресурсы для работы с SharePoint есть в наличии:

Теперь PowerShell DSC умеет работать с SharePoint. Идем дальше

Конфигурация

Для примера я создал примитивную конфигурацию, в которой указал:

  • Должно быть установлен wsp-пакет
  • Активирована возможность
  • ВозможностьMinimal Download Strategy должна быть активирована/li>
  1. Configuration DemoSharePointDSC {
  2.     param(
  3.         $AccountName
  4.     )
  5.     Import-DscResource -ModuleName xSharePoint
  6.  
  7.     Node SP2016SRV
  8.     {
  9.         xSPFeature MDSFeatureEnabled
  10.         {
  11.             Name                 = "MDSFeature"
  12.             Url                  = "http://sp2016srv.dev.vitalyzhukov.ru"
  13.             Ensure               = "Present"
  14.             FeatureScope         = "Web"
  15.             PsDscRunAsCredential = $AccountName
  16.         }
  17.     }
  18. }
  19. $ConfigData = @{
  20.     AllNodes = @(
  21.         @{
  22.             NodeName = 'SP2016SRV'
  23.             PSDscAllowDomainUser = $true
  24.             PSDscAllowPlainTextPassword = $true
  25.         }
  26.     )
  27. }
  28.  
  29. DemoSharePointDSC -InstallAccount (Get-Credential) -ConfigurationData $ConfigData

Конфигурация может быть параметризованной. В моем примере только один параметр - учетная запись, под которой необходимо активировать указанную фичу.

Компиляция

Для компиляции заданной конфигурации достаточно исполнить соответствующий скрипт:

Результат компиляции - MOF-файл:

PowerShell DSC. MOF-файл

Теперь можно использовать MOF-файл для приведения текущей конфигурации к указанной в MOF-файле и/или для проверки на соответствие текущей конфигурации описанному.

Проверка на соответствие конфигурации

При проверке на соответствие текущего состояния описанному в MOF-файле PowerShell DSC вернет свойство InDesiredState (false - не соответствует, true - соответствует).

PowerShell DSC. Проверка на соответствие конфигурации

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

Единственное что надо сделать для приведения текущего состояния к описанному в конфигурации - исполнить командлет Start-DscConfigration, указав путь к папке, содержащий соответствующий MOF-файл:

PowerShell DSC. Приведение к конфигурации

Пользуемся!


Поделиться

Коментарии