Bereitstellen einer Anwendung auf einer Webfarm/Synchronisieren aller Computer in einer Webfarm

In diesem Beispiel wird das Erstellen eines Befehlszeilenskripts zum Ausführen der folgenden Aufgaben im Webfarmszenario veranschaulicht:

  1. Bereitstellen einer Anwendung aus einem von einem Entwickler bereitgestellten Paket auf mehreren Computer in einer Webfarm.

    Das Bereitstellen eines neuen Anwendungspakets oder das Ausführen eines Upgrades einer Anwendung auf eine neuere Version auf mehreren Computern kann eine mühsame Aufgabe sein. Ein Skript, das das Paket sendet und die Bereitstellung auf den Remotecomputern durchführt, erleichtert diese Aufgabe.

  2. Synchronisieren Sie Inhalte und Konfiguration aller Computer in einer Webfarm auf einem einzelnen Modellcomputer.

    Für das Anwenden mehrerer Änderungen auf eine Webfarm ist es erforderlich, alle Änderungen auf alle Computers auf genau die gleiche Weise anzuwenden. Wenn alle erforderlichen Änderungen in Skriptform vorliegen, handelt es sich dabei um eine einfache Aufgabe. Andernfalls stellt sich das Problem, wie alle Änderungen aufgezeichnet und auf allen Computern in der Webfarm reproduziert werden können. Eine andere Lösung besteht darin, alle Änderungen auf einen einzelnen Computer anzuwenden und dann in der Webfarm zu replizieren.

Dieses Beispiel zeigt, wie das Webbereitstellungstool (MSDeploy) zum Bereitstellen eines Anwendungspakets oder zum Replizieren von Inhalt und Konfiguration eines einzelnen Servers auf alle Computer in der Webfarm verwendet wird. Dieses Beispiel funktioniert mit beliebigen Anwendungspaketen von MSDeploy. Es wird die Gemeinsame Windows Server AppFabric-Beispielanwendung empfohlen, die für die Verwendung mit Windows Server AppFabric-Beispielen erstellt wurde. Sie finden dieses Anwendungspaket, wenn Sie zum Ordner <Beispiele>\ Samples\Management\MultiMachineSyncAndDeploy \Code\CalculatorService.zip navigieren. Dabei ist <Beispiele> der Pfad, unter dem Sie die AppFabric-Beispiele installiert haben. Das Skript kann auf einfache Weise an spezifische Erfordernisse angepasst werden, wenn beispielsweise die bereitgestellte Anwendung umbenannt oder nur eine einzelne Website synchronisiert werden soll.

Hinweis

Beispiele werden nur zu Anschauungszwecken bereitgestellt. Sie sind nicht für die Verwendung in einer Produktionsumgebung gedacht und wurden nicht in einer Produktionsumgebung getestet. Microsoft bietet keinen technischen Support für diese Beispiele.

Voraussetzungen

Für dieses Beispiel sind mindestens zwei Computer erforderlich, die die folgenden Anforderungen erfüllen:

  1. Der Remote-Agent-Dienst des Webbereitstellungstools (auch als Webbereitstellungs-Agent-Dienst bezeichnet) muss auf allen Computern installiert sein und ausgeführt werden. AppFabric installiert das Webbereitstellungstool standardmäßig, sein Remote-Agent-Dienst ist jedoch nicht Bestandteil der Standardinstallation. Hinzufügen des Remote-Agent-Diensts zur Installation:

    1. Öffnen Sie Programme und Funktionen in der Systemsteuerung, wählen Sie Webbereitstellungstool aus, und klicken Sie dann auf Ändern.

    2. Wenn Sie dazu aufgefordert werden, klicken Sie auf Weiter und auf dem folgenden Bildschirm dann auf Ändern.

    3. Nachdem die Liste der Features angezeigt wird, vergewissern Sie sich, dass Remote-Agent-Dienst als Wird vollständig auf der lokalen Festplatte installiert angegeben wird, und stellen Sie dann den Installations-Assistenten fertig.

    4. Nachdem der Assistent abgeschlossen ist, starten Sie den Dienst, indem Sie net start msdepsvc in ein Befehlsfenster eingeben. Wenn der Dienst automatisch bei jedem Start von Windows gestartet werden soll, geben Sie sc config msdepsvc start=auto in ein Befehlsfenster ein.

    Weitere Informationen zur Installation und Konfiguration des Webbereitstellungstools sowie zur Installation dieses Tools auf einem Computer, auf dem AppFabric nicht installiert ist, finden Sie unter http://learn.iis.net/page.aspx/421/installing-the-web-deployment-tool/.

  2. Alle Computer, die während der Synchronisierung geändert werden, müssen WWW-Dienste (HTTP) über die Firewall zulassen.

  3. Alle Computer in der Webfarm müssen Bestandteil einer Domäne sein, und das zum Synchronisieren der Farm verwendete Konto muss über Administratorberechtigungen für alle Computer verfügen.

Bei der Verwendung eines benutzerdefinierten Anbieters kann es sinnvoll sein, von Zeit zu Zeit zu prüfen, ob dieser vom Remote-Agent-Dienst erkannt wird. Welche Anbieter verfügbar sind, kann mithilfe von zwei Anbietern bestimmt werden.

  1. Verwenden von IIS – Klicken Sie in IIS-Manager mit der rechten Maustaste auf eine Anwendung, wählen Sie Bereitstellen und dann Anwendung exportieren aus. Klicken Sie im Dialogfeld Anwendung exportieren auf Komponenten verwalten. Klicken Sie in der Spalte Anbieter auf die letzte leere Zeile und dann auf den abwärtsgerichteten Pfeil. Dadurch wird die Liste aller vom Remote-Agent-Dienst erkannten verfügbaren Anbieter, einschließlich der benutzerdefinierten Anbieter, angezeigt.

  2. Verwenden der Befehlszeile – Geben Sie an einer Eingabeaufforderung auf der Befehlszeile des Webbereitstellungstools MSDEPLOY.EXE ein. Einen Teil der angezeigten Informationen bilden die verfügbaren benutzerdefinierten Anbieter. Informationen zum Installieren des Webbereitstellungstools finden Sie unter Installieren des Webbereitstellungstools.

Sie können das Beispielskript auch für die Ausführung in einer Nicht-Domänenumgebung ändern. Weitere Informationen zu den Authentifizierungsoptionen des Webbereitstellungstools finden Sie unter der Option "authType" auf https://technet.microsoft.com/en-us/library/dd569001(WS.10).aspx.

Beispielspeicherort und -dateien

Alle Dateien, die zum Ausführen dieses Beispiels erforderlich sind, finden Sie unter <Beispiele>\Samples\Management\MultiMachineSyncAndDeploy\Code:

  • machines.txt

  • sync.cmd

  • syncOne.cmd

  • deployOne.cmd

Einrichten und Ausführen dieses Beispiels

Aufgabe 1: Bereitstellen eines Pakets.

  1. Kopieren Sie alle Dateien aus dem Verzeichnis <Beispiele>\Samples\Management\SyncConfigFromModelMachine\Code auf den Verwaltungscomputer.

  2. Bearbeiten Sie die Datei "machines.txt" so, dass sie die Namen aller anderen Computer in der Farm enthält, die Sie in einem Durchgang ändern möchten. Sie müssen einen Computernamen pro Zeile eingeben.

  3. Führen Sie den Befehl sync.cmd -fromPackage <package file path> aus.

  4. Untersuchen Sie die Protokolldateien auf Fehler. Jeder Computer verfügt über eine eigene Protokolldatei namens "sync-COMPUTER.log". Dabei wird die Angabe COMPUTER durch den Namen des betreffenden Computers ersetzt.

Aufgabe 2: Synchronisieren auf einen Modellcomputer.

  1. Nachdem alle Computer in der Farm die oben beschriebenen Anforderungen erfüllen, können Sie beginnen, indem Sie die Anwendungs- oder Sitekonfigurationsänderungen an einem dieser Computer vornehmen. Dieser Computer wird als „Modellcomputer“ bezeichnet.

  2. Nachdem die Konfiguration erfolgt ist, kopieren Sie alle Dateien aus dem Verzeichnis <Beispiele>\Samples\Management\SyncConfigFromModelMachine\Code auf den Modellcomputer.

  3. Bearbeiten Sie die Datei "machines.txt" so, dass sie die Namen aller anderen Computer in der Farm enthält, die Sie in einem Durchgang ändern möchten. Sie müssen einen Computernamen pro Zeile eingeben.

  4. Führen Sie den Befehl sync.cmd -fromLocalServer aus, und geben Sie Y zur Bestätigung ein.

  5. Untersuchen Sie die Protokolldateien auf Fehler. Jeder Computer verfügt über eine eigene Protokolldatei namens "sync-COMPUTER.log". Dabei wird die Angabe COMPUTER durch den Namen des betreffenden Computers ersetzt.

Informationen zum Verständnis dieses Beispiels

Das Skript sync.cmd überprüft zuerst die vom Benutzer angegebenen Befehlszeilenargumente:

if "%1"=="" goto print_syntax
if "%1"=="-fromLocalServer" goto sync_server
if "%1"=="-fromPackage" goto sync_package
goto print_syntax

Je nach dem Argument ruft das Skript das Skript deployOne.cmd oder syncOne.cmd ein Mal für jeden in machines.txt angegebenen Computer auf. Dies erfolgt durch die Befehle FOR und START zum Aufrufen des nachfolgenden Skripts, sodass die Aufgabe gleichzeitig auf den Zielcomputern ausgeführt wird.

for /f %%i in ('type machines.txt') do (start deployOne.cmd %%i %2 %3 )

Oder

for /f %%i in ('type machines.txt') do ( start syncOne.cmd %%i %1) 

SyncOne.cmd/DeployOne.cmd ist ein Skript, das die Befehlszeilenschnittstelle der Webbereitstellung (einen Befehl namens msdeploy.exe) verwendet, um einen IIS-Remotewebserver mit dem Paket oder dem gesamten IIS-Webserver auf den lokalen Computer zu synchronisieren:

msdeploy.exe -verb:sync -source:package=%2 -dest:auto,computername=%1 %3

Oder

msdeploy.exe -verb:sync -source:webServer -dest:webServer,computername=%1 %2

Der erste Parameter ist der von sync.cmd übergebene Computername, und der Pfad der Paketdatei wird vom Skript deployOne.cmd als zweiter Parameter benötigt. Der letzte (optionale) Parameter ist ein beliebiger Parameter, den Sie an msdeploy übergeben möchten. Dies ist hilfreich, wenn Sie einen weiteren Parameter an die Webbereitstellung übergeben möchten, ohne eines der Skripts ändern zu müssen. Ein solcher zusätzlicher Parameter kann z. B. -whatif sein:

sync.cmd -whatif

Wenn die Webbereitstellung mit dem -whatif-Parameter ausgeführt wird, findet eine Überprüfung auf alle Fehler statt, die ggf. während der Ausführung des angegebenen Befehls auftreten können, ohne dass der Befehl tatsächlich ausgeführt wird. Es wird empfohlen, den Befehl sync in einer Produktionsumgebung mit -whatif auszuführen, um alle ggf. auftretenden Fehler zu ermitteln. Diese Vorsichtsmaßnahme kann einen inkonsistenten Zustand als Endergebnis verhindern.

Entfernen dieses Beispiels

Löschen Sie zum Entfernen dieses Beispiels alle Beispieldateien vom Modellcomputer bzw. Verwaltungscomputer.

Weitere Ressourcen

Weitere Informationen zum Webbereitstellungstool finden Sie unter http://learn.iis.net/page.aspx/346/web-deployment-tool/.

Weitere Informationen zum Verwenden von Web Deploy zum Synchronisieren zweier Server, auf denen IIS 7.0 ausgeführt wird, finden Sie unter http://learn.iis.net/page.aspx/446/synchronize-iis-70/.

Weitere Informationen zur Installation und Konfiguration des Webbereitstellungstools finden Sie unter http://learn.iis.net/page.aspx/421/installing-the-web-deployment-tool/.

  2011-12-05