Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Krátký popis
Obsahuje stručný úvod do funkce DSC (Desired State Configuration) PowerShellu.
Dlouhý popis
DSC je platforma pro správu v PowerShellu, která umožňuje nasazení a správu konfiguračních dat pro softwarové služby a správu prostředí, ve kterém tyto služby běží.
DSC poskytuje sadu jazykových rozšíření PowerShellu, nové rutiny a prostředky, které můžete použít k deklarativnímu určení způsobu konfigurace stavu softwarového prostředí. Poskytuje také způsob údržby a správy existujících konfigurací.
DSC se zavádí v PowerShellu 4.0.
Podrobné informace o DSC najdete v tématu Přehled konfigurace požadovaného stavu PowerShellu.
Vývoj prostředků DSC pomocí tříd
Počínaje PowerShellem 5.0 můžete vyvíjet prostředky DSC pomocí tříd. Další informace najdete v tématu about_Classes a zápis vlastního prostředku DSC pomocí tříd PowerShellu.
Použití DSC
Pokud chcete ke konfiguraci prostředí použít DSC, nejprve definujte blok skriptu PowerShellu pomocí klíčového slova Konfigurace a potom identifikátor, za kterým následuje dvojice složených závorek, které blok odděluje. Uvnitř bloku konfigurace můžete definovat bloky uzlů, které určují požadovaný stav konfigurace pro každý uzel (počítač) v prostředí. Blok uzlu začíná klíčovým slovem Node a za ním název cílového počítače, což může být proměnná. Po názvu počítače se objeví složené závorky, které odděluje blok uzlu. Uvnitř bloku uzlu můžete definovat bloky prostředků pro konfiguraci konkrétních prostředků. Blok prostředku začíná názvem typu prostředku následovaným identifikátorem, který chcete pro tento blok zadat, a za ním složené závorky, které blok odděluje, jak je znázorněno v následujícím příkladu.
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
}
}
}
Pokud chcete vytvořit konfiguraci, vyvoláte blok konfigurace stejným způsobem, jakým byste vyvolali funkci PowerShellu, a předejte všechny očekávané parametry, které jste definovali (dva v předchozím příkladu). Například v tomto případě:
MyWebConfig -MachineName "TestMachine" -WebsiteFilePath `
"\\filesrv\WebFiles" -OutputPath "C:\Windows\system32\Temp"
# OutputPath is optional
Tím se vygeneruje soubor MOF na uzel v zadané cestě. Tyto soubory MOF určují požadovanou konfiguraci pro každý uzel. Dále pomocí následující rutiny parsujte konfigurační soubory MOF, odešlete každý uzel odpovídající konfiguraci a proveďte tyto konfigurace. Všimněte si, že pro prostředky DSC založené na třídách nemusíte vytvářet samostatný soubor MOF.
Start-DscConfiguration -Verbose -Wait -Path "C:\Windows\system32\Temp"
Použití DSC k udržování stavu konfigurace
U DSC je konfigurace idempotentní. To znamená, že pokud použijete DSC k provedení stejné konfigurace více než jednou, výsledný stav konfigurace bude vždy stejný. Pokud máte podezření, že jakékoli uzly ve vašem prostředí mohly být posunuty od požadovaného stavu konfigurace, můžete znovu provést stejnou konfiguraci DSC a vrátit je zpět do požadovaného stavu. Konfigurační skript nemusíte upravovat tak, aby řešil pouze ty prostředky, jejichž stav se odkláněl od požadovaného stavu.
Následující příklad ukazuje, jak můžete ověřit, jestli se skutečný stav konfigurace na daném uzlu odchyloval od poslední konfigurace DSC přijaté na uzlu. V tomto příkladu kontrolujeme konfiguraci místního počítače.
$session = New-CimSession -ComputerName "localhost"
Test-DscConfiguration -CimSession $session
Integrované prostředky DSC
V konfiguračních skriptech můžete použít následující předdefinované prostředky:
| Název | Vlastnosti |
|---|---|
| Soubor | {DestinationPath, Attributes, Checksum, Content...} |
| Archiv | {Cíl, cesta, kontrolní součet, přihlašovací údaje...} |
| Prostředí | {Name, DependsOn, Ensure, Path...} |
| Seskupit | {GroupName, Credential, DependsOn, Description...} |
| Protokol | {Message, DependsOn, PsDscRunAsCredential} |
| Balíček | {Name, Path, ProductId, Arguments...} |
| Registr | {Key, ValueName, DependsOn, Ensure...} |
| Skript | {GetScript, SetScript, TestScript, Credential...} |
| Služba | {Name, BuiltInAccount, Credential, Dependencies...} |
| Uživatelská | {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...} |
Pokud chcete získat seznam dostupných prostředků DSC ve vašem systému, spusťte rutinu Get-DscResource .
Poznámka:
Ve verzích PowerShellu nižších než 7.0 Get-DscResource nenajde prostředky DSC založené na třídě.
Příklad v tomto tématu ukazuje, jak používat prostředky File a WindowsFeature. Pokud chcete zobrazit všechny vlastnosti, které můžete použít s prostředkem, vložte kurzor do klíčového slova prostředku (například Soubor) v konfiguračním skriptu v prostředí PowerShell ISE, podržte stisknutou klávesu CTRL+MEZERNÍK.
Najít další zdroje informací
Můžete si stáhnout, nainstalovat a dozvědět se o mnoha dalších dostupných prostředcích DSC vytvořených komunitou uživatelů PowerShellu a DSC a Microsoftem. Navštivte Galerie prostředí PowerShell a projděte si dostupné zdroje informací o DSC.