Sie sind hier:
Wissen
Telefon (Mo-Fr 9 bis 16 Uhr):
0201/649590-0
|
Kontaktformular
MENU
Medien
Übersicht
Lexikon/Glossar
Spickzettel
Weblog
Konferenzvorträge
Fachbücher
Fachartikel
Leserportal
Autoren gesucht!
Literaturtipps
Praxisnahe Fallbeispiele
Downloads
Newsletter
.NET
Startseite
.NET 8.0
.NET 7.0
.NET 6.0
.NET 5.0
.NET Core
.NET 4.0/4.5.x/4.6.x
.NET 3.0/3.5
.NET 2.0
.NET-Lexikon
Programmiersprachen
Entwicklerwerkzeuge
Klassenreferenz
Softwarekomponenten
Windows Runtime
World Wide Wings-Demo
Versionsgeschichte
Codebeispiele
ASP.NET
Artikel
Bücher
Schulung & Beratung
Konferenzen/Events
ASP.NET
Startseite
Lexikon
Sicherheit
Konfiguration
Global.asax
Tracing
Technische Beiträge
Klassenreferenz
Programmiersprachen
Entwicklerwerkzeuge
Softwarekomponenten
Forum
Schulung & Beratung
PowerShell
Startseite
Commandlet-Referenz
Codebeispiele
Commandlet Extensions
Versionsgeschichte
Schulungen+Beratung
Windows
Startseite
Windows Runtime (WinRT)
Windows PowerShell
Windows Scripting
Windows-Schulungen
Windows-Lexikon
Windows-Forum
Scripting
Startseite
Lexikon
FAQ
Bücher
Architektur
Skriptsprachen
Scripting-Hosts
Scripting-Komponenten
COM/DCOM/COM+
ADSI
WMI
WMI-Klassenreferenz
Scripting-Tools
WSH-Editoren
Codebeispiele
.NET-Scripting
Forum
Schulung & Beratung
Nutzer
Anmeldung/Login
Buchleser-Registrierung
Gast-Registrierung
Hilfe
Website-FAQ
Technischer Support
Site Map
Tag Cloud
Suche
Kontakt
Erklärung des Begriffs: Desired State Configuration (DSC)
Begriff
Desired State Configuration
Abkürzung
DSC
Eintrag zuletzt aktualisiert am
24.05.2023
Zur Stichwortliste unseres Lexikons
Was ist
Desired State Configuration
?
Desired State Configuration (DSC) ist ein deklaratives Verfahren zur Systemkonfiguration, das Microsoft mit der PowerShell Version 4.0 im Jahr 2013 neu eingeführt hat.
Bei klassischer scriptbasierter Konfiguration legt der Administrator die einzelnen Schritte zur Zielkonfiguration fest. Er muss in der Regel vor Beginn eines Konfigurationsschrittses prüfen, ob die Konfiguration schon vorhanden ist, bevor er sie ausführt. Auch das Rückgängigmachen einer Konfiguration muss er durch einzelne Schritte realisieren.
Bei DSC beschreibt der Administrator deklarativ nur das Ziel einer Konfiguration. DSC ist selbst in der Lage, den aktuellen Zustand zu prüfen, einen nicht notwendigen Schritt zu überspringen, eine aus (vielen) Teilen bestehende Konfiguration durchzusetzen und auch diese Schritte wieder rückgängig zu machen.
DSC wird seit 2023 auch im
Windows Package Manager
(
WinGet
) verwendet für die Konfiguration von Rechnern.
Idempotente Ausführung
Aus der Sicht von DSC ist es kein Fehler, wenn eine Konfiguration schon vorhanden ist (idempotente Ausführung).
Ressourcen
DSC kennt „Ressourcen“. Für eine Ressource (z.B. Benutzer, Gruppen, Dienste, Umgebungsvariablen,
Prozesse
, Registry) definiert der Administrator den Zielzustand. Zu jeder konfigurierbaren Ressource gibt es in der PowerShell einen DSC-Ressourcentyp (z.B. User, Group, Service, Environment, Process, Registry).
Eine sehr universelle Ressource ist die „Script“-Ressource. Mit dieser kann man beliebige PowerShell-Skripte in einer DSC-Datei verwenden und so auch Aktionen ermöglichen, die nicht durch eine der bestehenden Ressourcen abgedeckt sind.
Die Ressourcentypen sind erweiterbar. Zusätzliche Ressourcentypen gibt es beim z.B. hier:
http://gallery.technet.microsoft.com
und
https://github.com/smurawski/DSC-Contrib.
Man kann auch selbst eigene Ressourcentypen schreiben.
Eigenschaften eines Ressourcentyps
Ressourcentypen haben Eigenschaften, die die Arbeit der Ressource steuern. Die Eigenschaften werden gemäß der Syntax Name="Wert" zugewiesen.
Alle Ressourcentypen haben folgende gemeinsamen Eigenschaften:
Ensure="Present" oder "Absent": Diese Eigenschaft sorgt dafür, dass eine Konfiguration durchgesetzt (wenn sie nicht vorhanden ist) oder rückgängig gemacht wird (wenn sie vorhanden ist).
DependsOn="[Ressourcentypename]RessourceName" ist ein Verweis auf einen Ressourcenblock in derselben DSC-Datei, die erfüllt sein müssen, bevor dieser Ressourcenblock ausgeführt wirken kann. Leider kann man hier nicht mehrere Ressourcenblöcke angeben (zumindest ist bei Microsoft nicht dokumentiert, wie es gehen soll, und zahlreiche Versuche mit verschiedenen Syntaxformen haben nicht zum Ziel geführt).
Aufbau einer DSC-Datei
Eine DSC-Datei beginnt mit dem Schlüsselwort configuration, gefolgt von dem im Rahmen der gültigen PowerShell-Bezeichner frei wählbaren Namen der Konfiguration. In geschweiften Klamern folgt ein DSC-Knoten (engl. Nodes) mit Verweis auf einen Rechner. Innerhalb der DSC-Knoten gibt es einen oder mehrere DSC-Ressourcenblöcke. Jeder Ressourcenblock bezieht sich auf einen Ressourcentyp und legt deren Eigenschaften fest. Der Ressourcenblock beginnt mit Ressourcennamen und dann einem im Rahmen der gültigen PowerShell-Bezeichner frei wählbaren Namen für den Block. Ein DSC-Knoteneintrag kann fehlen, d.h., die configuration { } kann direkt DSC-Ressourcenblöcke enthalten. Es darf auch mehrere DSC-Knoteneinträge in einer Datei geben. Es darf innerhalb einer Konfiguration und innerhalb eines DSC-Knoteneinträgs mehrere Einträge für den gleichen Ressourcentyp geben. Jeder Ressourcenblock muss einen eindeutigen Namen haben, sonst kommt es zum Fehler „duplicate resource identifier“.
Ein erstes DSC-Beispiel
Das folgende Listing zeigt ein minimales Beispiel für eine DSC-Datei mit dem Konfigurationsnamen „D
SCE
rstesBeispiel“ mit einem DSC-Knoten und zwei DSC-Ressourcenblöcken mit Namen „RegEintrag1Erzeugen“ und „RegEintrag2Erzeugen“ für den Ressourcentyp Registry, die dafür sorgen, dass es zwei Windows-
Registrierungsdatenbank
einträge „Inhaber“ und „Produkte“ im Schlüssel „HKEY
LOCAL
MACHINE\SOFTWARE\www.IT-Visions.de“ gibt. Diese Datei kann man unter beliebigem Namen ablegen, gefolgt von der Dateinamenserweiterung .ps1. Es bietet sich an, die Datei wie die Konfiguration zu benennen, also D
SCE
rstesBeispiel.ps1.
"Lade DSC…"
configuration D
SCE
rstesBeispiel
{
node
Server114
{
Registry RegEintrag1Erzeugen
{
Ensure ="Present"
Key ="HKEY
LOCAL
MACHINE\SOFTWARE\www.IT-Visions.de"
ValueName="Inhaber"
ValueData="
Dr. Holger Schwichtenberg
"
}
Registry RegEintrag2Erzeugen
{
Ensure ="Present"
Key ="HKEY
LOCAL
MACHINE\SOFTWARE\www.IT-Visions.de"
ValueName="Produkte"
ValueData="Schulung,Beratung,Support"
}
}
}
"DSC ist geladen!"
Anwendung einer DSC-Datei
Um die DSC-Datei anzuwenden, sind drei Schritte notwendig:
1. Die DSC-Datei muss ausgeführt werden wie eine normale PowerShell-Skriptdatei (in der
ISE
oder an der Kommandozeile). Normalerweise erhält man dabei keine Ausgabe. In dem Fall des obigen ersten Beispiels erhält man eine Ausgabe, weil vor und nach dem configuration-Block noch Ausgabebefehle stehen.
2. Nun kompiliert man die Konfiguration aus, indem man den Namen der Konfiguration an der Konsole wie den Namen einer PowerShell-Funktion ausführt. Das Ergebnis ist eine
WMI
-
MOF
-Datei. Die PowerShell antwortet mit dem Namen der erzeugten
MOF
-Datei. Dies ist im obigen Fall, wo es keinen dedizierten DSC-Knoten gibt, der Name „localhost.mof“. Die Datei landet in einem Unterverzeichnis, das so heißt wie die Konfiguration. Man sollte dabei aufpassen, wo man mit dem aktuellen Verzeichnis steht, denn die Datei wird relativ zum aktuellen Standort abgelegt.
3. Im letzten Schritt wird nun die kompilierte
MOF
-Datei ausgeführt und damit die Konfiguration angewendet. Dies erfolgt mit dem
Commandlet
Start-DscConfiguration erneut unter Angabe des Konfigurationsnamens
Start-DscConfiguration D
SCE
rstesBeispiel
-Wait –Verbose.
Normalerweise wird die Konfiguration in einem Hintergrundjob ausgeführt, sodass der Benutzer nichts davon sieht, sondern nur den Job-Status abfragen kann. Mit –Wait wird bestimmt, dass die Konfiguration interaktiv gestartet wird. –Verbose sorgt wie immer für eine detaillierte Ausgabe.
DSC-Module
DSC-Ressourcen können in DSC-Module gebündelt werden. DSC-Module bekommt man in der
PowerShell Gallery
https://www.powershellgallery.com/packages.
Viele DSC-Module werden von der DSC Community herausgegeben:
https://dsccommunity.org
Querverweise zu anderen Begriffen im Lexikon
Windows Package Manager (WinGet)
Registrierungsdatenbank
PowerShell Gallery
Commandlet (Cmdlet)
Prozesse
Windows Package Manager (WinGet)
node.js (node)
Microsoft Operational Framework (MOF)
Windows Management Instrumentation (WMI)
PowerShell Integrated Scripting Environment (ISE)
Security Configuration Editor (SCE)
Beratung & Support
Anfrage für Beratung/Consulting zu Desired State Configuration DSC
Gesamter Beratungsthemenkatalog
Technischer Support zum Desired State Configuration DSC
Schulungen zu diesem Thema
Desired State Configuration (DSC)
Windows PowerShell 4.0 für Umsteiger von Version 3.0
Windows PowerShell 5.0/5.1 für Umsteiger von Version 4.0
Windows PowerShell 5.1/PowerShell 7.0 für System- und Netzwerkadministratoren
Microsoft Azure-Cloud-Dienste verwalten mit der Windows PowerShell
Windows PowerShell 5.1/PowerShell 7.0 für System- und Netzwerkadministratoren (4-Tages-Agenda des öffentlichen Seminars)
.NET-Sicherheit (.NET Security)
Agile Softwarearchitektur
Microsoft Visio (Basiswissen)
Apps für iOS (iPhone und iPad) entwickeln mit XCode und Objective-C
Windows Server-Administration mit der Windows PowerShell, insbesondere Active Directory-Administration
LEGO® Serious Play® Methode
Design und Usability von modernen Software-Benutzeroberflächen (Software Ergonomie/Benutzungsfreundlichkeit/User Interaction Design/User Experience)
Praktische Architekturdokumentation - Softwarearchitekturen festhalten und kommunizieren
HTML 5.x-Basiswissen (Grundlagen für Einsteiger)
Active Directory-Administration mit der Windows PowerShell
Android-App-Entwicklung mit Java (Android-Programmierung mit Java)
.NET-Softwarearchitektur (Architektur von .NET-Anwendungen)
Windows Server 2016 Update (Neuheiten für Administratoren gegenüber Windows Server 2012 R2)
NHibernate - Objekt-Relationales Mapping (ORM) mit .NET
MySQL oder MariaDB für Fortgeschrittene
Power Platform mit Microsoft Dynamics 365
Windows 8/Windows 8.1 für Anwender/Benutzer (Umstieg von Windows XP auf Windows 8)
Datenmodellieren für und mit Power BI sowie Analysis Services Tabular
Anfrage für eine individuelle Schulung zum Thema Desired State Configuration DSC
Gesamter Schulungsthemenkatalog
Bücher zu diesem Thema
Alle unsere aktuellen Fachbücher
E-Book-Abo für ab 99 Euro im Jahr