Udostępnij za pośrednictwem


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.

Zobacz też