about_DesiredStateConfiguration
Krótki opis
Zawiera krótkie wprowadzenie do funkcji konfiguracji żądanego stanu programu PowerShell (DSC).
Długi opis
DSC to platforma zarządzania w programie PowerShell, która umożliwia wdrażanie danych konfiguracji dla usług oprogramowania i zarządzanie nimi oraz zarządzanie środowiskiem, w którym działają te usługi.
Rozszerzenie DSC udostępnia zestaw rozszerzeń języka programu PowerShell, nowych poleceń cmdlet i zasobów, których można użyć do deklaratywnego określania stanu środowiska oprogramowania. Zapewnia również środki do obsługi istniejących konfiguracji i zarządzania nimi.
Rozszerzenie DSC jest wprowadzane w programie PowerShell 4.0.
Aby uzyskać szczegółowe informacje na temat rozszerzenia DSC, zobacz PowerShell Desired State Configuration Overview (Omówienie konfiguracji żądanego stanu programu PowerShell).
OPRACOWYWANIE ZASOBÓW DSC PRZY UŻYCIU KLAS
Począwszy od programu PowerShell 5.0, można opracowywać zasoby DSC przy użyciu klas. Aby uzyskać więcej informacji, zobacz about_Classes i Pisanie niestandardowego zasobu DSC przy użyciu klas programu PowerShell.
KORZYSTANIE Z ROZSZERZENIA DSC
Aby skonfigurować środowisko przy użyciu rozszerzenia DSC, najpierw zdefiniuj blok skryptu programu PowerShell przy użyciu słowa kluczowego Konfiguracja, a następnie identyfikator, po którym następuje para nawiasów klamrowych rozdzielając blok. Wewnątrz bloku konfiguracji można zdefiniować bloki węzłów, które określają żądany stan konfiguracji dla każdego węzła (komputera) w środowisku. Blok węzła rozpoczyna się od słowa kluczowego Node, a następnie nazwy komputera docelowego, który może być zmienną. Po nazwie komputera wprowadź nawiasy klamrowe, które rozdzielają blok węzła. Wewnątrz bloku węzła można zdefiniować bloki zasobów w celu skonfigurowania określonych zasobów. Blok zasobów rozpoczyna się od nazwy typu zasobu, a następnie identyfikatora, który chcesz określić dla tego bloku, a następnie nawiasów klamrowych rozdzielających blok, jak pokazano w poniższym przykładzie.
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
}
}
}
Aby utworzyć konfigurację, wywołaj blok Konfiguracja w taki sam sposób, jak wywołasz funkcję programu PowerShell, przekazując wszelkie oczekiwane parametry, które mogły zostać zdefiniowane (dwa w powyższym przykładzie). Na przykład w tym przypadku:
MyWebConfig -MachineName "TestMachine" -WebsiteFilePath `
"\\filesrv\WebFiles" -OutputPath "C:\Windows\system32\temp"
# OutputPath is optional
Spowoduje to wygenerowanie pliku MOF na węzeł w określonej ścieżce. Te pliki MOF określają żądaną konfigurację dla każdego węzła. Następnie użyj następującego polecenia cmdlet, aby przeanalizować pliki MOF konfiguracji, wysłać każdy węzeł do odpowiedniej konfiguracji i wprowadzić te konfiguracje. Należy pamiętać, że nie trzeba tworzyć oddzielnego pliku MOF dla zasobów DSC opartych na klasie.
Start-DscConfiguration -Verbose -Wait -Path "C:\Windows\system32\temp"
OBSŁUGA STANU KONFIGURACJI PRZY UŻYCIU ROZSZERZENIA DSC
W przypadku rozszerzenia DSC konfiguracja jest idempotentna. Oznacza to, że jeśli używasz rozszerzenia DSC do wdrożenia tej samej konfiguracji więcej niż raz, wynikowy stan konfiguracji będzie zawsze taki sam. W związku z tym, jeśli podejrzewasz, że wszystkie węzły w środowisku mogły dryfować z żądanego stanu konfiguracji, możesz ponownie wprowadzić tę samą konfigurację DSC, aby przywrócić je do żądanego stanu. Nie trzeba modyfikować skryptu konfiguracji tak, aby adresował tylko te zasoby, których stan dryfował z żądanego stanu.
W poniższym przykładzie pokazano, jak sprawdzić, czy rzeczywisty stan konfiguracji w danym węźle dryfował z ostatniej konfiguracji DSC wprowadzonej w węźle. W tym przykładzie sprawdzamy konfigurację komputera lokalnego.
$session = New-CimSession -ComputerName "localhost"
Test-DscConfiguration -CimSession $session
WBUDOWANE ZASOBY DSC
W skryptach konfiguracji można użyć następujących wbudowanych zasobów:
Nazwisko | Właściwości |
---|---|
Plik | {DestinationPath, Attributes, Checksum, Content...} |
Archiwizuj | {Miejsce docelowe, ścieżka, suma kontrolna, poświadczenie...} |
Środowisko | {Name, DependsOn, Ensure, Path...} |
Grupuj | {GroupName, Credential, DependsOn, Description...} |
Dziennik | {Message, DependsOn, PsDscRunAsCredential} |
Pakiet | {Nazwa, Ścieżka, Identyfikator produktu, Argumenty...} |
Rejestr | {Klucz, ValueName, DependsOn, Upewnij się...} |
Skrypt | {GetScript, SetScript, TestScript, Credential...} |
Usługa | {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 | {Nazwa, Poświadczenie, DependsOn, Upewnij się...} |
WindowsOptionalFeature | {Name, DependsOn, Ensure, LogLevel...} |
WindowsProcess | {Argumenty, ścieżka, poświadczenia, zależności...} |
Aby uzyskać listę dostępnych zasobów DSC w systemie, uruchom Get-DscResource
polecenie cmdlet .
Uwaga
W programie PowerShell w wersjach poniżej 7.0 Get-DscResource
nie można znaleźć zasobów DSC opartych na klasie.
W przykładzie w tym temacie pokazano, jak używać zasobów File i WindowsFeature. Aby wyświetlić wszystkie właściwości, których można użyć z zasobem, wstaw kursor w słowie kluczowym zasobu (na przykład Plik) w skry skrycie konfiguracji w programie PowerShell ISE, przytrzymaj CTRL+SPACJA
ZNAJDŹ WIĘCEJ ZASOBÓW
Możesz pobrać, zainstalować i dowiedzieć się więcej o wielu innych dostępnych zasobach DSC utworzonych przez społeczność użytkowników programu PowerShell i DSC oraz przez firmę Microsoft. Odwiedź Galeria programu PowerShell, aby przejrzeć i dowiedzieć się więcej o dostępnych zasobach DSC.