Sdílet prostřednictvím


about_DesiredStateConfiguration

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.

Viz také