Freigeben über


Schreiben, Kompilieren und Anwenden einer Konfiguration

Gilt für: Windows PowerShell 4.0, Windows PowerShell 5.0

In dieser Übung wird das Erstellen und Anwenden einer DSC-Konfiguration (Desired State Configuration) von Anfang bis Ende erläutert. Im folgenden Beispiel erfahren Sie, wie Sie eine sehr einfache Konfiguration schreiben und anwenden. Die Konfiguration stellt sicher, dass eine "HelloWorld.txt" -Datei auf Ihrem lokalen Computer vorhanden ist. Wenn Sie die Datei löschen, wird sie bei der nächsten Aktualisierung von DSC neu erstellt.

Eine Übersicht darüber, was DSC ist und wie es funktioniert, finden Sie unter Übersicht über die Konfiguration des gewünschten Zustands für Entwickler.

Anforderungen

Zum Ausführen dieses Beispiels benötigen Sie einen Computer mit PowerShell 4.0 oder höher.

Schreiben Sie die Konfiguration

Eine DSC-Konfiguration ist eine spezielle PowerShell-Funktion, die definiert, wie Sie einen oder mehrere Zielcomputer (Nodes) konfigurieren möchten.

Geben Sie in der PowerShell ISE oder einem anderen PowerShell-Editor Folgendes ein:

Configuration HelloWorld {

    # Import the module that contains the File resource.
    Import-DscResource -ModuleName PsDesiredStateConfiguration

    # The Node statement specifies which targets to compile MOF files for, when
    # this configuration is executed.
    Node 'localhost' {

        # The File resource can ensure the state of files, or copy them from a
        # source to a destination with persistent updates.
        File HelloWorld {
            DestinationPath = "C:\Temp\HelloWorld.txt"
            Ensure = "Present"
            Contents   = "Hello World from DSC!"
        }
    }
}

Von Bedeutung

In komplexeren Szenarien, in denen mehrere Module importiert werden müssen, damit Sie mit vielen DSC-Ressourcen in derselben Konfiguration arbeiten können, stellen Sie sicher, dass Sie jedes Modul in einer separaten Zeile mit Import-DscResourceeinfügen. Dies ist in der Quellcodeverwaltung einfacher zu verwalten und erforderlich, wenn Sie mit DSC in Azure State Configuration arbeiten.

 Configuration HelloWorld {

  # Import the module that contains the File resource.
  Import-DscResource -ModuleName PsDesiredStateConfiguration
  Import-DscResource -ModuleName xWebAdministration

Speichern Sie die Datei als "HelloWorld.ps1".

Das Definieren einer Konfiguration ist wie das Definieren einer Funktion. Der Block Node gibt den zu konfigurierenden Zielknoten an, in diesem Fall localhost.

Die Konfiguration ruft eine Ressource auf, die File Ressource. Ressourcen stellen sicher, dass sich der Zielknoten in dem durch die Konfiguration definierten Zustand befindet.

Kompilieren Sie die Konfiguration

Damit eine DSC-Konfiguration auf einen Knoten angewendet werden kann, muss sie zunächst in eine MOF-Datei kompiliert werden. Wenn Sie die Konfiguration wie eine Funktion ausführen, wird eine .mof Datei für jeden Node kompiliert, der durch den Node Block definiert wird. Um die Konfiguration ausführen zu können, müssen Sie das HelloWorld.ps1 Skript in den aktuellen Bereich übertragen. Weitere Informationen finden Sie unter about_Scripts.

Geben Sie den Pfad für Ihr HelloWorld.ps1 Skript ein, indem Sie den Pfad eingeben, in dem Sie es gespeichert haben, nach dem . (Punkt, Leerzeichen). Sie können dann Ihre Konfiguration ausführen, indem Sie sie wie eine Funktion aufrufen. Sie können auch die Konfigurationsfunktion am unteren Rand des Skripts aufrufen, damit Sie keine Punktquelle verwenden müssen.

. C:\Scripts\HelloWorld.ps1
HelloWorld

Die folgende Ausgabe wird generiert:

Directory: C:\Scripts\HelloWorld


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        3/13/2017   5:20 PM           2746 localhost.mof

Anwenden der Konfiguration

Nachdem Sie nun über die kompilierte MOF verfügen, können Sie die Konfiguration auf den Zielknoten (in diesem Fall den lokalen Computer) anwenden, indem Sie das Cmdlet Start-DscConfiguration aufrufen.

Das Start-DscConfiguration Cmdlet weist den lokalen Konfigurations-Manager (Local Configuration Manager, LCM), das Modul von DSC, an, die Konfiguration anzuwenden. Das LCM ruft die DSC-Ressourcen auf, um die Konfiguration anzuwenden.

Verwenden Sie den folgenden Code, um das Start-DSCConfiguration Cmdlet auszuführen. Geben Sie den Verzeichnispfad an, in dem Ihr localhost.mof Verzeichnis gespeichert ist, und geben Sie den Parameter Pfad an. Das Start-DSCConfiguration Cmdlet durchsucht das angegebene Verzeichnis nach <computername>.mof Dateien. Das Start-DSCConfiguration Cmdlet versucht, jede .mof gefundene Datei auf die computername durch den Dateinamen ("localhost", "server01", "dc-02" usw.) angegebene Datei anzuwenden.

Hinweis

Wenn der -Wait Parameter nicht angegeben ist, Start-DSCConfiguration wird ein Hintergrundauftrag zum Ausführen des Vorgangs erstellt. Wenn Sie den -Verbose Parameter angeben, können Sie die ausführliche Ausgabe des Vorgangs überwachen. -Wait -Verbose und sind beide optionale Parameter.

Start-DscConfiguration -Path C:\Scripts\HelloWorld -Verbose -Wait

Testen der Konfiguration

Sobald das Start-DSCConfiguration Cmdlet abgeschlossen ist, sollte eine HelloWorld.txt Datei an dem von Ihnen angegebenen Speicherort angezeigt werden. Sie können den Inhalt mit dem Cmdlet Get-Content überprüfen.

Sie können den aktuellen Status auch mit Test-DSCConfigurationtesten.

Die Ausgabe sollte sein True , wenn der Knoten derzeit mit der angewendeten Konfiguration kompatibel ist.

Test-DSCConfiguration
True
Get-Content -Path C:\Temp\HelloWorld.txt
Hello World from DSC!

Erneutes Anwenden der Konfiguration

Um zu sehen, wie Ihre Konfiguration erneut angewendet wird, können Sie die von Ihrer Konfiguration erstellte Textdatei entfernen. Verwenden Sie das Start-DSCConfiguration Cmdlet mit dem -UseExisting Parameter. Der -UseExisting Parameter weist an Start-DSCConfiguration , die Datei "current.mof" erneut anzuwenden, die die zuletzt erfolgreich angewendete Konfiguration darstellt.

Remove-Item -Path C:\Temp\HelloWorld.txt

Nächste Schritte

  • Weitere Informationen zu DSC-Konfigurationen finden Sie unter DSC-Konfigurationen.
  • Erfahren Sie, welche DSC-Ressourcen verfügbar sind und wie Sie benutzerdefinierte DSC-Ressourcen unter DSC-Ressourcen erstellen.
  • Suchen Sie im PowerShell-Katalog nach DSC-Konfigurationen und -Ressourcen.