PowerShell DSC. SharePoint

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

Desired State Configuration

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

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

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

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

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

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

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

Демка

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

Ресурсы

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

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

Ресурсы xSharePoint

Ресурсы xSharePoint

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

Install-Module -Name xSharePoint -Force

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

Get-DscResource

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

Ресурсы для работы с SharePoint

Ресурсы для работы с SharePoint

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

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

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

  • Должно быть установлен wsp-пакет
  • Активирована возможность
  • Возможность Minimal Download Strategy должна быть активирована
Configuration DemoSharePointDSC {
    param(
        $AccountName
    )
    Import-DscResource -ModuleName xSharePoint
 
    Node SP2016SRV
    {
        xSPFeature MDSFeatureEnabled
        {
            Name                 = "MDSFeature"
            Url                  = "http://sp2016srv.dev.vitalyzhukov.ru"
            Ensure               = "Present"
            FeatureScope         = "Web"
            PsDscRunAsCredential = $AccountName
        }
    }
}
$ConfigData = @{
    AllNodes = @(
        @{
            NodeName = 'SP2016SRV'
            PSDscAllowDomainUser = $true
            PSDscAllowPlainTextPassword = $true
        }
    )
}
 
DemoSharePointDSC -InstallAccount (Get-Credential) -ConfigurationData $ConfigData
C#

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

Компиляция

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

Компиляция DSC

Компиляция DSC

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

PowerShell DSC. MOF-файл

PowerShell DSC. MOF-файл

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

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

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

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

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

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

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

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

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

Пользуемся!

Виталий Жуков

Виталий Жуков

Техлид, Архитектор, Разработчик, Microsoft MVP. Более 20 лет опыта в области системной интеграции и разработки программного обеспечения. Специализируюсь на проектировании и внедрении масштабируемых высокопроизводительных программных решений в различных отраслях.

Смотрите также