Поделиться через


about_DesiredStateConfiguration

Краткое описание

Краткое введение в функцию конфигурации требуемого состояния PowerShell (DSC).

Подробное описание

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

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

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

Подробные сведения о DSC см. в разделе "Общие сведения о конфигурации требуемого состояния PowerShell".

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

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

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

Чтобы использовать DSC для настройки среды, сначала определите блок скрипта PowerShell с помощью ключевого слова configuration, а затем идентификатор, который в свою очередь следует парой фигурных скобок, разделяющих блок. Внутри блока конфигурации можно определить блоки узлов, которые указывают требуемое состояние конфигурации для каждого узла (компьютера) в среде. Блок узла начинается с ключевого слова 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, Атрибуты, Контрольная сумма, Содержимое...}
Архив {Назначение, путь, контрольная сумма, учетные данные...}
Среда {Name, DependsOn, Ensure, Path...}
Групповой {GroupName, Credential, DependsOn, Description...}
Журнал {Message, DependsOn, PsDscRunAsCredential}
Пакет {Name, Path, ProductId, Arguments...}
Реестр {Key, ValueName, DependsOn, Ensure...}
Скрипт {GetScript, SetScript, TestScript, Credential...}
Service {Name, BuiltInAccount, Credential, Dependencies...}
User {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 {Arguments, Path, Credential, DependsOn...}

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

Примечание.

В версиях PowerShell до 7.0 Get-DscResource не находит ресурсы DSC на основе класса.

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

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

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

См. также