about_DesiredStateConfiguration

КРАТКОЕ ОПИСАНИЕ

Краткое введение в функцию PowerShell Desired State Configuration (DSC).

ПОДРОБНОЕ ОПИСАНИЕ

DSC — это платформа управления в PowerShell, которая позволяет развертывать данные конфигурации для программных служб и управлять ими, а также управлять средой, в которой выполняются эти службы.

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

DSC представлен в PowerShell 4.0.

Подробные сведения о DSC см. в разделе "Общие сведения о PowerShell Desired State Configuration" в библиотеке TechNet.

РАЗРАБОТКА РЕСУРСОВ DSC С ПОМОЩЬЮ КЛАССОВ

Начиная с PowerShell 5.0, ресурсы DSC можно разрабатывать с помощью классов. Дополнительные сведения см. в статье about_Classes и написании пользовательского ресурса DSC с помощью классов PowerShell в Microsoft TechNet.

ИСПОЛЬЗОВАНИЕ DSC

Чтобы настроить среду с помощью DSC, сначала определите блок скрипта PowerShell с помощью ключевого слова "Конфигурация", а затем идентификатор, за которым в свою очередь следует пара фигурных скобок, разделяющих блок. Внутри блока конфигурации можно определить блоки узлов, которые указывают требуемое состояние конфигурации для каждого узла (компьютера) в среде. Блок узла начинается с ключевого слова Node, за которым следует имя целевого компьютера, который может быть переменной. После имени компьютера введите фигурные скобки, разделяющие блок узла. Внутри блока узла можно определить блоки ресурсов для настройки определенных ресурсов. Блок ресурсов начинается с имени типа ресурса, за которым следует идентификатор, который нужно указать для этого блока, а затем фигурные скобки, разделяющие блок, как показано в следующем примере.

Configuration MyWebConfig {
    # Parameters are optional
    param ($MachineName, $WebsiteFilePath)
    # A Configuration block can have one or more Node blocks
    Node $MachineName
    {
        # Next, specify one or more resource blocks
        # WindowsFeature is one of the resources you can use in a Node block
        # This example ensures the Web Server (IIS) role is installed
        WindowsFeature IIS
        {
            # To ensure that the role is not installed, set Ensure to "Absent"
            Ensure = "Present"
            Name = "Web-Server" # Use the Name property from Get-WindowsFeature
        }

        # You can use the File resource to create files and folders
        # "WebDirectory" is the name you want to use to refer to this instance
        File WebDirectory
        {
            Ensure = "Present"  # You can also set Ensure to "Absent"
            Type = "Directory" # Default is "File"
            Recurse = $true
            SourcePath = $WebsiteFilePath
            DestinationPath = "C:\inetpub\wwwroot"

            # Ensure that the IIS block is successfully run first before
            # configuring this resource
            DependsOn = "[WindowsFeature]IIS"  # Use for dependencies
        }
    }
}

Чтобы создать конфигурацию, вызовите блок конфигурации так же, как и при вызове функции PowerShell, передав все ожидаемые параметры, которые вы могли определить (два в приведенном выше примере). Например, в этом случае:

MyWebConfig -MachineName "TestMachine" -WebsiteFilePath `
  "\\filesrv\WebFiles" -OutputPath "C:\Windows\system32\temp"
# OutputPath is optional

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

Start-DscConfiguration -Verbose -Wait -Path "C:\Windows\system32\temp"

ИСПОЛЬЗОВАНИЕ DSC ДЛЯ ПОДДЕРЖАНИЯ СОСТОЯНИЯ КОНФИГУРАЦИИ

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

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

$session = New-CimSession -ComputerName "localhost"
Test-DscConfiguration -CimSession $session

ВСТРОЕННЫЕ РЕСУРСЫ DSC

В скриптах конфигурации можно использовать следующие встроенные ресурсы:

Имя Свойства
Файл {DestinationPath, Attributes, Checksum, Content...}
Archive {Назначение, путь, контрольная сумма, учетные данные...}
Среда {Name, DependsOn, Ensure, Path...}
Group {GroupName, Credential, DependsOn, Description...}
Журнал {Message, DependsOn, PsDscRunAsCredential}
Пакет {Name, Path, ProductId, Arguments...}
Реестр {Key, ValueName, DependsOn, Ensure...}
Сценарий {GetScript, SetScript, TestScript, Credential...}
Служба {Name, BuiltInAccount, Credential, Dependencies...}
Пользователь {UserName, DependsOn, Description, Disabled...}
WaitForAll {NodeName, ResourceName, DependsOn, PsDscRunAsC...}
WaitForAny {NodeName, ResourceName, DependsOn, PsDscRunAsC...}
WaitForSome {NodeCount, NodeName, ResourceName, DependsOn...}
WindowsFeature {Name, Credential, DependsOn, Ensure...}
WindowsOptionalFeature {Name, DependsOn, Ensure, LogLevel...}
WindowsProcess {Аргументы, путь, учетные данные, DependsOn...}

Чтобы получить список доступных ресурсов DSC в системе, выполните командлет Get-DscResource.

В примере в этом разделе показано, как использовать ресурсы File и WindowsFeature. Чтобы просмотреть все свойства, которые можно использовать с ресурсом, вставьте курсор в ключевое слово ресурса (например, файл) в скрипт конфигурации в среде сценариев PowerShell, удерживая клавишу CTRL, а затем нажмите клавишу ПРОБЕЛ.

ПОИСК ДОПОЛНИТЕЛЬНЫХ РЕСУРСОВ

Вы можете скачать, установить и узнать о многих других доступных ресурсах DSC, созданных сообществом пользователей PowerShell и DSC, а также корпорацией Майкрософт. Посетите коллекция PowerShell, чтобы просмотреть и узнать о доступных ресурсах DSC.

СМ. ТАКЖЕ

Общие сведения о Desired State Configuration PowerShell

Встроенные ресурсы Desired State Configuration PowerShell

Создание пользовательских ресурсов PowerShell Desired State Configuration