about_DesiredStateConfiguration

KRÓTKI OPIS

Zawiera krótkie wprowadzenie do funkcji Desired State Configuration 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 są uruchamiane te usługi.

DsC udostępnia zestaw rozszerzeń języka programu PowerShell, nowych poleceń cmdlet i zasobów, których można użyć do deklaratywnego określenia sposobu konfigurowania stanu środowiska oprogramowania. Zapewnia również metodę utrzymania istniejących konfiguracji i zarządzania nimi.

DsC jest wprowadzana w programie PowerShell 4.0.

Aby uzyskać szczegółowe informacje na temat rozszerzenia DSC, zobacz PowerShell Desired State Configuration Overview in the TechNet Library (Omówienie programu PowerShell Desired State Configuration w bibliotece TechNet).

TWORZENIE ZASOBÓW DSC ZA POMOCĄ 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 w witrynie Microsoft TechNet.

KORZYSTANIE Z PLATFORMY 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 przejdź do nawiasów klamrowych, 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 nawiasy klamrowe, które rozdzielą 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 klasach.

Start-DscConfiguration -Verbose -Wait -Path "C:\Windows\system32\temp"

UŻYWANIE ROZSZERZENIA DSC DO OBSŁUGI STANU KONFIGURACJI

W przypadku rozszerzenia DSC konfiguracja jest idempotentna. Oznacza to, że jeśli używasz kontrolera DSC do uchwalenia tej samej konfiguracji więcej niż raz, wynikowy stan konfiguracji będzie zawsze taki sam. W związku z tym, jeśli podejrzewasz, że jakiekolwiek 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 można sprawdzić, czy rzeczywisty stan konfiguracji w danym węźle dryfował z ostatniej konfiguracji DSC uchwalonej 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:

Nazwa Właściwości
Plik {DestinationPath, Atrybuty, Suma kontrolna, Zawartość...}
Archiwum {Miejsce docelowe, ścieżka, suma kontrolna, poświadczenia...}
Środowisko {Name, DependsOn, Ensure, Path...}
Group (Grupa) {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...}
Użytkownik {UserName, DependsOn, Description, Disabled...}
WaitForAll {NodeName, ResourceName, DependsOn, PsDscRunAsC...}
WaitForAny {NodeName, ResourceName, DependsOn, PsDscRunAsC...}
WaitForSome {NodeCount, NodeName, ResourceName, DependsOn...}
WindowsFeature {Nazwa, Poświadczenia, DependsOn, Upewnij się...}
WindowsOptionalFeature {Name, DependsOn, Ensure, LogLevel...}
WindowsProcess {Argumenty, ścieżka, poświadczenie, zależności...}

Aby uzyskać listę dostępnych zasobów DSC w systemie, uruchom polecenie cmdlet Get-DscResource.

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 skrycie konfiguracji w programie PowerShell ISE, przytrzymaj klawisze CTRL, a następnie naciśnij klawisz SPACEBAR.

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 RÓWNIEŻ

Omówienie programu PowerShell Desired State Configuration

Wbudowane zasoby Desired State Configuration programu PowerShell

Tworzenie niestandardowych zasobów programu PowerShell Desired State Configuration