Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
von Jason Lee
In diesem Thema wird beschrieben, wie Sie Berechtigungen konfigurieren, damit Ihr Buildserver Inhalte auf Webservern und Datenbankservern als Teil eines automatisierten Buildprozesses bereitstellen kann.
Dieses Thema ist Teil einer Reihe von Lernprogrammen basierend auf den Anforderungen an die Unternehmensbereitstellung eines fiktiven Unternehmens namens Fabrikam, Inc. In dieser Lernprogrammreihe wird eine Beispiellösung – die Contact Manager-Lösung – verwendet, um eine Webanwendung mit einer realistischen Komplexitätsstufe darzustellen, einschließlich einer ASP.NET MVC 3-Anwendung, einem WCF-Dienst (Windows Communication Foundation) und einem Datenbankprojekt.
Die Bereitstellungsmethode im Mittelpunkt dieser Lernprogramme basiert auf dem geteilten Projektdateiansatz, der unter "Grundlegendes zur Projektdatei" beschrieben wird, in dem der Buildprozess von zwei Projektdateien gesteuert wird– eine mit Buildanweisungen, die für jede Zielumgebung gelten, und eine mit umgebungsspezifischen Build- und Bereitstellungseinstellungen. Zur Build-Zeit wird die umgebungsspezifische Projektdatei in die umgebungsunabhängige Projektdatei zusammengeführt, um einen vollständigen Satz von Build-Anweisungen zu bilden.
Aufgabenübersicht
Wenn Sie den Team Foundation Server (TFS) 2010-Builddienst installieren, geben Sie die Identität an, mit der der Dienst ausgeführt werden soll. Standardmäßig ist dies das Netzwerkdienstkonto. Alternativ können Sie den Builddienst so konfigurieren, dass er mit einem Domänenkonto ausgeführt wird.
Alle Bereitstellungsaufgaben, die die Windows-Authentifizierung erfordern und die Sie mithilfe von TeamBuild automatisieren möchten, werden mit der Builddienstidentität ausgeführt. Daher müssen Sie der Builddienstidentität alle erforderlichen Berechtigungen auf Ihren Webservern und Ihren Datenbankservern erteilen.
Hinweis
Das Netzwerkdienstkonto verwendet das Computerkonto, um sich bei anderen Computern zu authentifizieren. Computerkonten haben die Form [Domänenname][Maschinenname]$, z. B. FABRIKAM\TFSBUILD$. Wenn Ihr Builddienst mit der Netzwerkdienst-Identität ausgeführt wird, sollten Sie alle erforderlichen Berechtigungen für die Computerkonto-Identität für den Buildserver erteilen.
Konfigurieren von Webserverberechtigungen
Wie in der Auswahl des richtigen Ansatzes für die Webbereitstellung beschrieben, gibt es zwei Hauptansätze, die Sie verwenden können, wenn Sie Webpakete auf einem Remotewebserver bereitstellen möchten:
- Stellen Sie die Anwendung von einem Remotestandort aus bereit, indem Sie den WebBereitstellungs-Agent-Dienst (auch als Remote-Agent bezeichnet) auf dem Zielserver verwenden.
- Stellen Sie die Anwendung von einem Remotespeicherort aus bereit, indem Sie auf dem Zielserver den Internet Information Services (IIS) Web Deploy Handler anvisieren.
Der Remote-Agent hat in diesem Fall zwei wichtige Einschränkungen:
- Der Remote-Agent unterstützt nur die NTLM-Authentifizierung. Mit anderen Worten: Die Bereitstellung muss die Identität des Build-Dienstes verwenden – Sie können sich nicht als ein anderes Konto ausgeben.
- Um den Remote-Agent zu verwenden, muss das Konto, das die Bereitstellung ausführt, ein Administrator auf dem Zielserver sein.
Zusammen machen diese beiden Einschränkungen den Remote-Agent-Ansatz für eine automatisierte TeamBuild-Bereitstellung nicht erwünscht. Um diesen Ansatz zu verwenden, müssen Sie das Builddienstkonto zu einem Administrator auf allen Zielwebservern machen.
Im Gegensatz dazu bietet der Web Deploy Handler-Ansatz verschiedene Vorteile:
- Der Web Deploy-Handler unterstützt die Standardauthentifizierung über HTTPS, sodass Sie die Anmeldeinformationen eines alternativen Kontos an das IIS Web Deployment Tool (Web Deploy) übergeben können.
- Sie können Zielwebserver konfigurieren, damit Nichtadministratorbenutzer Inhalte mithilfe des Web Deploy Handlers auf bestimmten IIS-Websites bereitstellen können.
Daher ist es eindeutig vorzuziehen, den Web Deploy Handler als Ziel zu verwenden, wenn Sie die Bereitstellung von Webpaketen über Team Build automatisieren. Dies ist der empfohlene Prozess:
- Erstellen Sie ein Domänenkonto mit niedrigen Berechtigungen, das für die Bereitstellung verwendet werden soll.
- Konfigurieren Sie den Web Deploy-Handler, und erteilen Sie dem Konto die erforderlichen Berechtigungen zum Bereitstellen von Inhalten auf einer bestimmten IIS-Website, wie unter Konfigurieren eines Webservers für web Deploy Publishing (Web Deploy Handler) beschrieben.
- Rufen Sie Web Deploy auf, und richten Sie den Web Deploy-Handler aus, indem Sie die Standardauthentifizierung verwenden und die Anmeldeinformationen des von Ihnen erstellten Domänenkontos angeben, um die Bereitstellung durchzuführen.
In der Contact Manager-Beispiellösung geben Sie den Authentifizierungstyp (Standard oder NTLM), die Web Deploy-Anmeldeinformationen und die Endpunktadresse (Remote-Agent oder Web Deploy-Handler) in der umgebungsspezifischen Projektdatei an. Diese Werte werden verwendet, um einen Web Deploy-Befehl zu formulieren und auszuführen, wenn die Projektdatei ausgeführt wird. Weitere Informationen finden Sie unter Bereitstellen von Webpaketen.
Weitere Informationen zum Konfigurieren des Web Deploy-Handlers, einschließlich der Konfiguration von Berechtigungen, finden Sie unter Configuring a Web Server for Web Deploy Publishing (Web Deploy Handler).For more information on configure the Web Deploy Handler, including how to configure permissions, see Configuring a Web Server for Web Deploy Publishing (Web Deploy Handler). Weitere Informationen zum Konfigurieren des Remote-Agents finden Sie unter Configuring a Web Server for Web Deploy Publishing (Remote Agent).For more information on configuring the remote agent, see Configuring a Web Server for Web Deploy Publishing (Remote Agent).
Konfigurieren von Datenbankserverberechtigungen
Um eine Datenbank in SQL Server bereitzustellen, müssen Sie:
- Erstellen Sie eine Anmeldung für das Bereitstellungskonto in der SQL Server-Instanz.
- Erteilen Sie den Anmelde-DBCreator-Berechtigungen für die SQL Server-Instanz.
- Fügen Sie nach der Erstbereitstellung die Anmeldung zur db_owner Rolle in der Zieldatenbank hinzu. Dies ist erforderlich, da Sie bei nachfolgenden Bereitstellungen eine vorhandene Datenbank ändern, anstatt eine neue Datenbank zu erstellen.
Sie können sich mit ntLM-Authentifizierung oder SQL Server-Authentifizierung bei einer SQL Server-Instanz authentifizieren:
- Wenn Sie die NTLM-Authentifizierung verwenden, müssen Sie dem Builddienstkonto die oben beschriebenen Berechtigungen erteilen.
- Wenn Sie die SQL Server-Authentifizierung verwenden, müssen Sie dem SQL Server-Konto die oben beschriebenen Berechtigungen erteilen. Sie müssen auch den SQL Server-Benutzernamen und das Kennwort in die Verbindungszeichenfolge einschließen, die Sie zum Bereitstellen der Datenbank verwenden.
Schrittweise Informationen zum Konfigurieren von Berechtigungen für die Datenbankbereitstellung finden Sie unter Konfigurieren eines Datenbankservers für die Webbereitstellung.
Fazit
Zu diesem Zeitpunkt sollten Sie die erforderlichen Berechtigungen zusammen mit den für Sie geöffneten Authentifizierungsoptionen verstehen, wenn Sie Webanwendungs- und Datenbankbereitstellungen aus TeamBuild automatisieren. Sie sollten auch in der Lage sein, die erforderlichen Berechtigungen auf IIS-Webservern und SQL Server-Datenbankservern zu implementieren.
Weiterführende Lektüre
Weitere Informationen zum Konfigurieren von Windows Server-Umgebungen zur Unterstützung der Remotebereitstellung finden Sie unter Konfigurieren von Serverumgebungen für die Webbereitstellung.