adam121 - Fotolia

PowerShell-Skript zur automatisierten DSC-Bereitstellung eines IIS-Webservers

Administratoren setzen während ihres Arbeitslebens unzählige IIS-Webserver auf. Über PowerShell DSC lässt sich dieser Vorgang leicht automatisieren.

IT-Abteilungen versuchen stets wiederkehrende Aufgaben zu automatisieren, was sowohl Zeit spart als auch das Fehlerrisiko minimiert. Gerade die Serverbereitstellung ist ein perfekter Kandidat für die IT-Automatisierung, weil das Golden Image mit den Konfigurationseinstellungen bei jedem Server-Deployment gleich bleibt.

Die PowerShell Desired State Configuration (DSC) ist eine PowerShell-Ressource zum Server-Provisioning und zur Konfigurationsverwaltung, über die Administratoren vorab definierte Einstellungen über ein Konfigurationsskript festlegen können. Dieses Skript kann dann so oft wie nötig in der gleichen Art und Weise auf einige wenige oder auch tausende Server angewendet werden. Inzwischen gibt es dutzende PowerShell-Ressourcen, die bei der DSC-Konfiguration helfen können und Komponenten offenlegen, die Administratoren damit konfigurieren können.

Die PowerShell DSC hilft also nicht nur, Konfigurationsabweichungen zu vermeiden, sondern kann auch zur Bereitstellung eines Hyper-V-Hosts oder eines Dateiservers herangezogen werden. Auch das Aufsetzen eines Webservers ist eine häufige Aufgabe für viele Administratoren, gerade in großen Unternehmen kommen dabei vor allem die Internet Information Services (IIS) von Microsoft zum Einsatz. Über PowerShell DSC können auch IIS-basierte Webserver automatisiert bereitgestellt werden, was langfristig sowohl Zeit als auch Geld sparen wird.

IIS-Webserver per Desired State Configuration bereitstellen

Mit den folgenden Schritten ist es möglich, über die PowerShell Desired State Configuration IIS zu installieren, eine einzelne Webseite aufzusetzen und anschließend einen App-Pool für diese Webseite anzulegen.

Die für den IIS-Webserver vorgesehene Maschine muss das Windows Management Framework (WMF) in Version 5 ausführen. Technisch gesehen würde auch WMF 4 funktionieren, mit Version 5 wurde die PowerShell DSC aber deutlich verbessert, was WMF 5 zum neuen Standard in Enterprise-Umgebungen machen sollte.

Nach der eventuell nötigen Installation von WMF 5 kann die Definition der Konfiguration angegangen werden. DSC kann dabei viele verschiedene Konfigurationsänderungen anwenden.

Als nächstes steht ein Blick auf die DSC-Ressourcen der PowerShell an, die hierfür in Frage kommen. Da es sich bei IIS um ein Windows Server Feature handelt, wird die native DSC-Ressource WindowsFeature verwendet. Sobald IIS installiert wurde, können über das DSC-Modul xWebAdministration aus der PowerShell Gallery einige weitere DSC-Ressourcen bezogen werden.

Find-Module xWebAdministration | Install-Module

Über den Befehl Get-DscResource lässt sich dann, wie in Abbildung 1 zu sehen, herausfinden, welche DSC-Ressourcen über das xWebAdministration -Modul verfügbar sind:

Get-DscResource -Module xWebAdministration

Liste der DSC-Ressourcen, die über das xWebAdministration-Modul erhältlich sind.
Abbildung 1: Liste der DSC-Ressourcen, die über das xWebAdministration-Modul erhältlich sind.

In diesem Artikel behandeln wir vor allem die DSC-Ressourcen xWebSite und xWebAppPool. Über den erneuten Befehl Get-DscResource lässt sich sehen, welche Attribute jeder dieser DSC-Ressourcen über den Syntax-Parameter weitergegeben werden können.

Get-DscResource -Name xWebSite,xWebAppPool  -Syntax

Als nächstes werden den Attributen firmenspezifische Werte angehängt. Hierfür wird zunächst eine DSC-Konfiguration zum Import der benötigten Module erstellt: WindowsFeature, xWebSite und xWebAppPool. Sobald die Module importiert wurden, muss noch jede Ressourcen zusammen mit den nötigen Attributen definiert werden, die die gewünschte Konfiguration definieren.

Das folgende Skript erstellt die Konfiguration für den Webserver und wendet diese auch gleich an, wie Abbildung 2 zeigt:

InstallWebServer.ps1

====================

Configuration CompanyXWebServer

{

     Import-DscResource -Module PSDesiredStateConfiguration, xWebAdministration

     Node 'localhost' {

        WindowsFeature 'InstallIIS' {

            Ensure = 'Present'

            Name = 'Web-Server'

        }

        xWebSite 'DefaultCompanyXSite' {

            Name = 'CompanyXSite'

            BindingInfo = @( MSFT_xWebBindingInformation

                {

                    Protocol = 'HTTP'

                    Port = 81

                }

            )

            PhysicalPath = 'C:\inetpub\wwwroot'

            ApplicationPool = 'CompanyXAppPool'

            DependsOn = '[xWebAppPool]DefaultCompanyXAppPool'

        }

 

        xWebAppPool 'DefaultCompanyXAppPool' {

            Name = 'CompanyXAppPool'

        }

    }

}

## Execute the configuration to create the MOF file

CompanyXWebServer

## Invoke the LCM to start applying this configuration

Start-DscConfiguration -Wait -Force -Path ".\CompanyXWebServer" -Verbose

Das oben aufgeführte Skript erstellt und konfiguriert einen IIS-Webserver.
Abbildung 2: Das oben aufgeführte Skript erstellt und konfiguriert einen IIS-Webserver.

In diesem Beispiel stehen die Einstellungen des Local Configuration Manager auf Default, wodurch die Konfiguration alle 30 Minuten überprüft und bei Abweichungen erneut angewendet wird. Zudem wird ein Event-Log über den Zustand der Konfiguration angelegt. Weitere Informationen hierzu bietet das Microsoft Developer Network (MSND).

Folgen Sie SearchDataCenter.de auch auf Twitter, Google+, Xing und Facebook!

Erfahren Sie mehr über Serverbetriebssysteme

- GOOGLE-ANZEIGEN

ComputerWeekly.de

Close