Desired State Configuration | First Config

in diesem Blog soll mit Hilfe der Built-In Resourcen zwei Webserver installiert werden. An sich keine große Aufgabe, zeigt aber wie schnell man mit kleinen Mitteln und wenig Code viel erreichen kann.

Vorüberlegung

Was wird benötigt und wie sieht die Umgebung aus? In der Umgebung befinden sich zwei Server 2012R2 : WebSRV1 und WebSRV2. Von einem Management Server (MGM-SERV01) wird DSC gestartet und auf diesem liegen auch die Daten für die Website, welche gehostet werden soll. Bei einem einfachen Webserver muss nicht viel beachtet werden. Es wird die IIS und .Net Rolle benötigt, weiterhin ist noch das Management Feature ganz hilfreich. Nachdem die Rollen installiert wurden, müssen noch die Website-Dateien kopiert und der IIS neu gestartet werden. Es ist nicht so einfach, wenn ein Service neu gestartet werden soll. Mit der Resource Service kann man zwar Dienste starten, stoppen und deren Starttyp ändern, aber nicht neu starten. Leider geht es nicht, dass die Resource Service einmal mit Stop und einmal mit Start auf Dienste ausgeführt wird. Das soll aber nicht das Problem sein. So ist gleich ein gutes Beispiel, um die Grundzüge von Skripten in DSC zu zeigen.

Der Plan sieht also folgendermaßen aus:

Code

 

Bei der Betrachtung des Codes sind die drei Resourcen WindowsFeature, File und Script zu finden. Bei WindowsFeature werden die Rollen definiert, welche auf dem Server installiert werden soll. In diesem Fall der IIS, ASP.Net und das Management Feature.

Die Resource File kopiert alle Ordner der geplanten Webseite vom MGM-SRV01 Quellpfad in den Inetpub-Ordner. Interessant ist hier die Definition der Checksum um eine korrekte Kopie sicher zu stellen. Außerdem wird hier die Abhängigkeit gezeigt, dass die Daten erst kopiert werden, wenn IIS vollständig installiert wurde. Um den IIS Service neu zu starten, wird die Script Ressource verwendet. Diese Resource hat drei Skriptparameter, welche unbedingt gefüllt sein müssen. TestScript gibt True oder False zurück, bei False wird SetScript ausgeführt, in diesem Fall ist es der Neustart des IIS Services. TestScript wird außerdem ausgeführt, wenn Test-DscConfiguration ausgeführt wird, in diesem Fall wird SetScript aber nicht ausgeführt.  GetScript liefert nur eine Hashtable.  Dieser Teil wird ausgeführt, wenn das Cmdlet Get-DSCConfiguration ausgeführt wird. Das untere Bild zeigt schön alle drei Ressourcen die wir genutzt haben, ein Teil der IIS Installation, das Kopieren der Dateien und das Ausführen des Skriptes.

IIS Komponenten und Script

IIS Komponenten und Script

Nachdem die Configuration angewandt wurde, kann über den Internet Explorer getestet werden, ob unsere Configuration ohne Probleme funktioniert hat. Der IE kann natürlich auch über die PowerShell gestartet werden:

Ich habe mir einfach ein freies Webseiten Tamplate heruntergeladen:

Website - Template

Das soll es als erstes kleines Beispiel gewesen sein. Im nächsten Teil wird der Local Configuration Manager etwas näher betrachtet.

 

Über Andreas Bittner

MCSA Server 2016, MCSA Server 2012R2, Exchange 2010 & SharePoint Devop
Dieser Beitrag wurde unter Configuration, DevOps, DSC, Entwicklung, PowerShell, Resources, Scripting abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.