DSC: ручная установка ресурсов

При использовании push-метода применения конфигураций на серверы существует одна проблема – DSC на целевой системе не проверяет наличие необходимых ресурсов DSC. Это может привести к тому, что конфигурация применится не полностью. Что нас конечно же не устраивает. Поэтому необходимо обеспечить наличие всех необходимых ресурсов DSC, которые используются в конфигурации. Тут возможны два варианты:

  • Использование pull-сервера для применения конфигурации
  • Ручная установка необходимых модулей

Первый вариант мы пока опустим. А вот второй вариант рассмотрим подробнее. Любой модуль с ресурсами DSC имеет вполне определённую структуру и ставится по одному из путей указанных в переменной $env:PSModulePath. Модули обычно поставляются в виде архива, который содержит всю необходимую структуру папок со всеми необходимыми файлами. Задача сводится к следующему – необходимо на целевой сервер скопировать архив, содержащий файлы модуля и распаковать его по пути, указанному в переменной $env:PSModulePath. Задачу можно выполнить средствами DSC, используя ресурсы File (для копирования) и Archive (для распаковки архива). Файл конфигурации получается примерно следующего вида:

Configuration InstallDSCRes
{
    param ($modulePath = ($env:PSModulePath -split ';' |
    ? {$_ -match 'Program Files\\WindowsPowerShell'}),
    $Server = @('someserver'))
    Node $Server
    {
        File DSCResFile
        {
            SourcePath = "\\share.server\Distr\DscRes_1.0.0.0.zip"
            DestinationPath = "c:\Distr"
            Ensure = "Present"
            Type = "File"
            Checksum = "SHA-256"
            Force = $true
        }
        Archive UnzipModule
        {
            DependsOn = "[File]DSCResFile"
            Path = "c:\Distr\DscRes_1.0.0.0.zip"
            Destination = $modulePath
            Ensure = "Present"
        }
    }
}
InstallDSCRes -OutputPath C:\Configs\dsc

Затем запускаем применение конфигурации:

Start-DscConfiguration -Path C:\Configs\dsc -Wait -Verbose

Ссылки:
Resource authoring checklist
Use DSC to Install Windows PowerShell DSC Resource Kit Bits

Leave a Reply

Your email address will not be published. Required fields are marked *