CertBase Community
Die Lernplattform für Ihren Erfolg
Desired State Configuration (DSC)

Desired State Configuration (DSC) ist ein neues Feature der Windows PowerShell 4.0 bzw. des Windows Management Framework 4.0. Es ermöglicht, die gewünschte Konfiguration eines oder mehrerer Computer (Nodes) in einer Konfigurationsdatei zu beschreiben und anschließend per PowerShell Cmdlet auf einen oder mehrere Computer anzuwenden. Mit dem Anwenden der Konfigurationsdatei wird die Konfiguration des Computers an die in der Datei beschriebenen Einstellungen angepasst.

Bereits die standardmäßig integrierten Möglichkeiten erlauben die Konfiguration einer ganzen Palette von Systemeinstellungen, die in diesem Zusammenhang als DSC-Ressourcen bezeichnet werden.

Unter anderem ermöglicht die Desired State Configuration folgendes:

  • Aktivieren und Deaktivieren von Rollen und Features
  • Erstellen und konfigurieren von Registrierungseinstellungen
  • Übertragen von Ordnern und Dateien von Quellen im Netzwerk
  • Starten und Beenden von Diensten sowie das Festlegen von Starttypen für Dienste
  • Erstellen von Benutzer- und Gruppenkonten
  • Ausführen von Windows PowerShell Skripts

Das Erstellen und Anwenden einer Desired State Configuration umfasst die folgenden Schritte:

  1. Erstellen eines PowerShell Skripts mit dem neuen Schlüsselwort Configuration
  2. Ausführen des Skripts
  3. Erstellen von MOF-Dateien durch Aufruf der zuvor erstellten Konfiguration.
  4. Anwenden der MOF-Dateien auf einen oder mehrere Computer. Die MOF-Dateien können manuell per PowerShell Cmdlet oder auch im Push- oder Pull-Verfahren angewendet werden.

Das folgende Skript gibt einen Einblick in die Funktionsweise von DSC und kann als Vorlage für eigene Anpassungen dienen: 

Configuration MyDCS

{
    # Parameter sind optional
    param ($WebsiteFilePath)

   # Ein Configuration Abschnitt kann einen oder mehrere Node Blöcke enthalten
   #und ein Node Block kann auf einen oder mehrere Nodes angewendet werden
   Node ("localhost", "server-1.certbase.de")
   {

      # Unterhalb des Node-Blocks folgen ein oder mehrere Ressourcen-Blöcke
      # WindowsFeature zählt zu den standardmäßig integrierten DSC-Ressourcen
      # Das Beispiel installiert den DNS-Serverdienst, Die Namen der Rollen und Features können
      # mit Get-WindowsFeature ermittelt werden
      WindowsFeature MyRole
      {
          Ensure = "Present" # "Present" installiert die Rolle, "Absent" deinstalliert die Rolle
          Name = "DNS"  
      }

      # Das nächste Beispiel erstellt eine Gruppe mit dem Namen Perso, sofern sie nicht bereits vorhanden ist. 
      Group MyGruppe
      {
          Ensure = "Present" # "Present" erstellt die Gruppe, "Absent" entfernt die Gruppe
          GroupName = "Perso"  
      }

      # Legt den Starttyp für den WLAN-Dienst mit Automatisch fest
      Service MyDienst
      {
          Name = "wlansvc"
          StartupType = "Automatic"  
      }

      # Mit der DSC-Ressource "File" können Dateien und Ordner erstellt und entfernt werden
      # Das Beispiel stellt sicher, dass die Dateien aus dem "SourcePath" im "DestinationPath" vorhanden sind
      File MyFile
      {
         Ensure = "Present"  # Möglich sind "Present" oder "Absent"
         Type = "Directory" # Mögliche Werte sind "File" oder "Directory"
         Recurse = $true

         SourcePath = "\\Server1\Dokumente" # Pfad, der die Quelldateien enthält
         DestinationPath = "C:\inetpub\wwwroot" # Zielverzeichnis, das die Dateien aus dem Quellverzeichnis enthalten muss         
      }

       # Mit der DSC-Ressource Registry können Registrierungseinstellungen konfiguriert werden
      Registry MyRegistry
      {
          Ensure      = "Present"  # Möglich sind "Present" oder "Absent"
          Key         = "HKEY_LOCAL_MACHINE\SOFTWARE\Key"
          ValueName   ="Wert"

          ValueData   ="Daten für Wert"
      }
   }
}

Nachdem Sie das Skript einmal ausgeführt haben, können Sie die Management Object Framework (MOF)-Dateien durch Aufrufen der Configuration (Invoke) erstellen.

Im Beispiel des oben abgebildeten Skripts geben Sie folgendes an der PowerShell Konsole ein:

MyDCS

Die MOF-Dateien enthalten die Konfigurationsinformationen für die Zielknoten und werden standardmäßig in einem neuen Unterverzeichnis im Pfad des Skripts erstellt. Mit dem Parameter OutputPath kann ein alternatives Ausgabeverzeichnis angegeben werden.


Cmdlets zum Anwenden und prüfen einer Desired State Configuration

Der folgende Aufruf wendet alle MOF-Dateien, die sich im Ordner C:\MyOF befinden auf die betreffenden Computer an:

Start-DscConfiguration -Path "C:\MyMOF"

Der folgende Aufruf wendet nur die MOF-Datei für Server1 an:

Start-DscConfiguration -ComputerName "Server1" -Path "C:\MyMOF"  

Quellen und weiterführende Links:

Beschreibung der Built-In DSC-Ressourcen:
http://technet.microsoft.com/de-de/library/dn249921.aspx

Windows PowerShell Desired State Configuration
http://technet.microsoft.com/de-de/library/dn249912.aspx


Eingetragen Mon, 12. May 2014 11:16 von Maik
CertBase - IT-Prüfungsvorbereitung Online