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.
См. также
PowerShell