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.
Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019
Führen Sie die Schritte in diesem Artikel aus, um Azure DevOps Server mit Azure SQL-Datenbank zu konfigurieren. Diese Topologie verfügt über einige weitere Schritte im Vergleich zur Verwendung eines lokalen SQL-Servers.
Voraussetzungen
Kategorie | Anforderungen |
---|---|
Azure DevOps Server-Version | Azure SQL-Datenbank können nur mit Azure DevOps Server 2019 und höheren Versionen verwendet werden. |
Installationsumgebung | Azure DevOps Server auf einer Azure-VM installiert. |
Authentifizierung | Der virtuelle Computer (VM) verfügt über eine vom System verwaltete Identität, die zur Authentifizierung bei der Azure SQL-Datenbank verwendet wird. |
Domänenmitgliedschaft | Der virtuelle Computer ist mit einer Domäne verbunden, aber keine Arbeitsgruppe. |
Datenbanktyp | Azure SQL-Datenbanken sind einzelne Datenbanken. Verwaltete Instanzen und elastische Pools werden in Azure DevOps Server 2022 und höher unterstützt. |
Firewallregeln | Firewallregeln für Azure SQL-Datenbanken ermöglichen eingehende Verbindungen von der IP-Adresse oder dem Subnetz, in dem Azure DevOps Server gehostet wird. Wechseln Sie dazu zu: Azure-Portal>Azure SQL-Datenbank>Einstellungen>Firewalls und virtuellen Netzwerken> eine neue Regel hinzufügen, um den Zugriff von der öffentlichen IP-Adresse oder dem Subnetz Ihres Azure DevOps Servers zu ermöglichen. |
Werkzeuge | – Azure SQL-Datenbank bereitgestellt und über Azure zugänglich. Datensatz des Servernamens, des Datenbanknamens und der Authentifizierungsmethode. – Azure DevOps Server 2022, das in Ihrer lokalen Umgebung ausgeführt wird. – SSMS auf demselben Computer installiert, auf dem Azure DevOps Server installiert ist. |
Alle General Purpose- und Premium-SKUs sowie Standard-SKUs ab S3 werden unterstützt. Sowohl Basic-SKUs als auch Standard-SKUs S2 werden jedoch nicht unterstützt.
Azure DevOps Server-Konfigurationen, die Azure SQL-Datenbank verwenden, unterstützen keine älteren SQL Server Reporting Services-Features mit SQL Server Analysis Services-Berichterstellungsfeatures. Stattdessen können Sie Azure DevOps Analytics für Berichte und Analysen verwenden.
Azure SQL-Datenbank unterstützt keine verschlüsselten gespeicherten Prozeduren.
Einrichten von Azure SQL-Datenbank
Konfigurieren Sie eine verwaltete Identität auf Ihren virtuellen Computern. Zurzeit unterstützen wir nur vom System verwaltete Identitäten.
Sie können die Konfiguration mit allen Standardmechanismen ausführen, einschließlich der folgenden:
Um eine neue Azure DevOps Server-Instanz einzurichten, erstellen Sie zwei Azure SQL-Datenbanken:
- AzureDevOps_Configuration
- AzureDevOps_DefaultSammlung
Konfigurieren Sie die Microsoft Entra ID-Authentifizierung für Ihren Azure SQL-Datenbankserver. Machen Sie sich selbst zum Microsoft Entra-Administrator auf dem Server. Sie benötigen Administratorberechtigungen für die Datenbank, um die verbleibenden Konfigurationsschritte auszuführen. Sie können diese Berechtigung später ändern.
a) Führen Sie den folgenden T-SQL-Befehl in Der Hauptdatenbank aus. Ersetzen Sie VMName durch den Namen des virtuellen Computers, dessen verwaltete Identität Sie der Datenbank hinzufügen:
CREATE USER [VMName] FROM EXTERNAL PROVIDER ALTER ROLE [dbmanager] ADD MEMBER [VMName]
b. Führen Sie den folgenden T-SQL-Befehl für die Konfiguration und alle Sammlungsdatenbanken aus:
CREATE USER [VMName] FROM EXTERNAL PROVIDER ALTER ROLE [db_owner] ADD MEMBER [VMName] ALTER USER [VMName] WITH DEFAULT_SCHEMA=dbo
Ihre Datenbank ermöglicht es Ihrer VM jetzt, über die verwaltete Identität zu kommunizieren.
Hinweis
Wenn Sie Änderungen an Ihrer Azure-VM vornehmen, z. B. eine Momentaufnahme wiederherstellen oder den virtuellen Computer umbenennen, um die Verbindung wiederherzustellen:
- Entfernen Sie den [VMName] -Benutzer aus der Hauptdatenbank und allen Azure DevOps-Datenbanken. Wenn [VMName] Datenbankobjekte besitzt, müssen Sie den Besitzer möglicherweise in einen anderen Benutzer ändern, z. B. DBO, und dann wieder nach dem nächsten Schritt.
- Führen Sie die zuvor angegebenen SQL-Abfragen mit dem aktuellen [VMName] erneut aus, auch wenn sie unverändert ist.
- Starten Sie die Dienste von Azure DevOps Server neu.
Konfigurieren von Azure DevOps Server
Kehren Sie zum Azure DevOps Server-Konfigurationsassistenten zurück. Wenn Sie eine neue Instanz einrichten, wählen Sie "Dies ist eine neue Azure DevOps Server-Bereitstellung" aus. Wenn Sie ein Upgrade durchführen oder migrieren und vorhandene Daten in Ihren Datenbanken haben, wählen Sie "Ich habe vorhandene Datenbanken für diese Azure DevOps Server-Bereitstellung verwenden" aus.
Wenn Sie die Datenbankseite im Konfigurations-Assistenten aufrufen, geben Sie die Azure SQL-Datenbank Serverinstanz an. In der Regel befindet sich die Serverinstanz in Form von SQLInstanceName.database.windows.net.
Sie verfügen jetzt über eine Azure DevOps Server-Instanz, die auf Azure SQL-Datenbank ausgeführt wird.
Herstellen einer Verbindung mit einer Azure SQL-Datenbank über lokale SSMS
Führen Sie die folgenden Schritte aus, um eine Verbindung mit einer Azure SQL-Datenbank herzustellen, die von Ihrem lokalen SSMS stammt:
Exportieren Sie über SQL Server Management Studio (SSMS) von der virtuellen Maschine, die im selben virtuellen Netzwerk wie ein privater Netzwerkendpunkt betrieben wird, von SQL in den Blob-Speicher oder die Dateifreigabe.
Sie können den Datenebenen-Anwendungs-Assistenten von SQL Server Management Studio verwenden, um die Azure SQL-Datenbank in eine BACPAC-Datei zu exportieren. Sie können die BACPAC-Datei in Azure Blob Storage oder im Fileshare speichern.
Klicken Sie mit der rechten Maustaste auf die SQL-Datenbank im logischen SQL Server in SSMS>, wählen Sie Aufgaben> und dann Assistent zum Exportieren von Datenbankebenenanwendungen aus.
Wählen Sie Weiteraus.
Wählen Sie den Speicherort aus, an dem die BACPAC-Datei gespeichert werden soll.
Wählen Sie Schließenaus.
Die DAC-Pakete befinden sich hier: C:\Users\{sample-user-name}\OneDrive - Microsoft\Documents\SQL Server Management Studio\DAC Packages
.
Verbinden mit der Azure SQL-Datenbank vom Azure DevOps Server 2022
Das Verbinden der Azure SQL-Datenbank von Azure DevOps Server 2022 (lokal) umfasst das Konfigurieren des Zugriffs, die Sicherstellung der Konnektivität und die Verwendung geeigneter Anmeldeinformationen. Führen Sie die folgenden Schritte aus, um die Azure SQL-Datenbank von Azure DevOps Server 2022 zu verbinden.
Herstellen einer Verbindung mit azure SQL-Datenbank
Abrufen der Azure SQL-Datenbankverbindungsdetails:
- Server-Name:
<your-server-name>.database.windows.net
- Datenbankname:
<your-database-name>
- Authentifizierungsmethode: SQL Server-Authentifizierung (Benutzername/Kennwort) oder Microsoft Entra ID-Authentifizierung.
- Server-Name:
Verbinden mit SQL Server Management Studio (SSMS): a. Öffnen Sie SQL Server Management Studio auf dem Computer, auf dem Azure DevOps Server installiert ist. b. Stellen Sie eine Verbindung mit der Azure SQL-Datenbank her: c. Starten Sie SSMS. d. Im Fenster "Mit Server verbinden":
- Geben Sie den Servernamen ein:
<your-server-name>.database.windows.net
- Wählen Sie "Authentifizierung" aus: SQL Server-Authentifizierung.
- Geben Sie Ihren Benutzernamen und Ihr Kennwort ein.
- Wählen Sie Verbinden aus. Nach der Verbindung wird die Azure SQL-Datenbank im Objekt-Explorer in SSMS aufgeführt.
- Geben Sie den Servernamen ein:
Testen der Konnektivität: Ausführen einer Abfrage oder eines Befehls in SSMS:
SELECT @@VERSION;
Diese Abfrage gibt die SQL Server-Version Ihrer Azure SQL-Datenbank zurück, wobei bestätigt wird, dass die Verbindung erfolgreich ist.
Verbindung in Azure DevOps Server verwenden: Nachdem Sie die Verbindung von SSMS überprüft haben, können Sie diese Verbindung in Azure DevOps Server für verschiedene Aufgaben wie:
- Automatisierte Bereitstellungen: Einrichten von Releasepipelines in Azure DevOps Server zum Bereitstellen von Datenbankänderungen.
- Datenmigration: Verwenden Sie SQL-Skripts oder Datentools, die in Azure DevOps Server integriert sind.
- Kontinuierliche Integration: Integrieren Sie Datenbankänderungen in Ihre CI/CD-Pipelines.
Tipp
- Sicher sein: Erwägen Sie die Verwendung der Microsoft Entra-ID für einen sichereren Zugriff.
- Verwalten von Anmeldeinformationen: Speichern Sie Anmeldeinformationen sicher und vermeiden Sie die Hardcodierung in Skripts oder Konfigurationen.
- Überwachen: Überwachen von Datenbankverbindungen und -verwendung, um Sicherheit und Leistung sicherzustellen.
Verbinden Sie die Azure SQL-Datenbank von Azure DevOps Server 2022, die lokal ausgeführt wird, und ermöglichen Sie eine optimierte Datenbankverwaltung und Integration in Ihre Entwicklungs- und Bereitstellungsprozesse. Passen Sie Konfigurationen und Sicherheitsmaßnahmen basierend auf den Richtlinien und Anforderungen Ihrer Organisation an.
Verwenden Ihrer Azure SQL-Datenbankverbindung in Azure DevOps Server 2022
Vorbereiten von Azure DevOps Server:
a. Stellen Sie sicher, dass Azure DevOps Server 2022 auf Ihrer lokalen Umgebung installiert und konfiguriert ist.</
b. Zugriff auf den Azure DevOps-Server mit entsprechenden Berechtigungen zum Erstellen und Verwalten von Pipelines.Einrichten des Azure DevOps-Projekts und -Repositorys (sofern noch nicht geschehen):
a. Erstellen Sie ein neues Oder verwenden Sie ein vorhandenes Azure DevOps-Projekt.
b. Richten Sie ein Git- oder TFVC-Repository ein, um Ihre Pipelinedefinitionen und Skripts zu speichern.Erstellen einer Pipeline:
a. Wechseln Sie zu Ihrem Azure DevOps-Projekt.
b. Wählen Sie Pipelines>Pipelines>Neue Pipelineaus.
c. Wählen Sie die entsprechende Pipelinevorlage basierend auf Ihren Anforderungen aus. Bei Azure SQL-Datenbank können Sie mit einem leeren Auftrag beginnen oder eine Vorlage auswählen, die Ihren Bereitstellungsanforderungen entspricht (z. B. Azure Pipeline).
d. Bearbeiten Sie die YaML-Pipelinedatei, oder verwenden Sie den klassischen Editor, um Ihre Pipelinephasen und -aufgaben zu definieren.Hinzufügen von Aufgaben zur Bereitstellung in der Azure SQL-Datenbank:
Aufgabe: SQL Server-Datenbankbereitstellung: Verwenden Sie die aufgabe
SqlAzureDacpacDeployment
, um Änderungen in Ihrer Azure SQL-Datenbank bereitzustellen. Beispiel für YAML-Codeausschnitt:steps: - task: SqlAzureDacpacDeployment@1 inputs: azureSubscription: 'YourServiceConnectionName' # Use your Azure SQL Database service connection serverName: '<your-server-name>.database.windows.net' databaseName: '<your-database-name>' deployType: 'DacpacTask' authenticationType: 'server' sqlUsername: '$(sqlUsername)' sqlPassword: '$(sqlPassword)'
Ersetzen Sie
<your-server-name>
,<your-database-name>
,$(sqlUsername)
und$(sqlPassword)
durch geeignete Werte oder Variablen.Aufgabe: Azure SQL-Abfrage: Verwenden Sie die aufgabe
AzureSqlQuery
, um SQL-Abfragen für Ihre Azure SQL-Datenbank auszuführen. Beispiel für YAML-Codeausschnitt:steps: - task: AzureSqlQuery@1 inputs: azureSubscription: 'YourServiceConnectionName' # Use your Azure SQL Database service connection serverName: '<your-server-name>.database.windows.net' databaseName: '<your-database-name>' sqlUsername: '$(sqlUsername)' sqlPassword: '$(sqlPassword)' sqlQuery: 'SELECT * FROM TableName'
Sicheres Verwalten von Anmeldeinformationen: Verwenden von Azure DevOps-Variablen oder der Azure Key Vault-Integration zum Verwalten vertraulicher Informationen wie SQL Server-Anmeldeinformationen (
sqlUsername
undsqlPassword
).Trigger- und Ausführungspipeline:
- Speichern und übernehmen Sie die Pipelineänderungen.
- Starten Sie die Pipeline manuell oder richten Sie Trigger gemäß Ihrer Bereitstellungsstrategie ein (z. B. bei einem Code-Commit, zeitlich festgelegten Ereignis).
Überwachen der Pipelineausführung:
- Überwachen Sie Pipeline-Ausführungen in Azure DevOps, um sicherzustellen, dass Bereitstellungen in Azure SQL-Datenbank erfolgreich sind.
- Überprüfen Sie Protokolle und Ausgaben, um Probleme während der Bereitstellung zu beheben.
Tipp
- Integration in die Release-Pipelines: Integrieren Sie Ihre Build-Pipeline in die Release-Pipelines für komplexere Bereitstellungsszenarien und Genehmigungen.
- Inkrementelle Datenbankänderungen vornehmen: Verwenden Sie Tools wie SQL Server Data Tools (SSDT) oder Migrationen, um inkrementelle Änderungen am Datenbankschema zu verwalten.
- Versionssteuerung verwenden: Halten Sie Ihre SQL-Skripts und Datenbankänderungen unter Versionskontrolle, um Änderungen nachzuverfolgen und die Reproduzierbarkeit sicherzustellen.
Passen Sie Konfigurationen und Aufgaben basierend auf Ihren spezifischen Bereitstellungsanforderungen und organisatorischen Anforderungen an.
Erstellen einer SQL Server-Sicherung
Zum Erstellen einer SQL Server-Sicherung für Azure DevOps Server 2022 mithilfe der Azure DevOps Server-Verwaltungskonsole müssen Sicherungseinstellungen konfiguriert und regelmäßige Sicherungen geplant werden. Führen Sie die folgenden Schritte aus, um eine SQL Server-Sicherung zu erstellen.
Voraussetzungen für die Sicherung
Kategorie | Anforderungen |
---|---|
Zugriff | Administrator Zugriff auf den Server, auf dem der Azure DevOps Server installiert ist. |
Berechtigungen | Berechtigung zum Konfigurieren von Sicherungen und Zugreifen auf SQL Server Management Studio. |
Sicherung erstellen
Starten Sie die Azure DevOps Server-Verwaltungskonsole auf dem Server, auf dem Azure DevOps Server installiert ist, und wählen Sie Anwendungsebene>geplante Sicherungen>Erstellen geplanter Sicherungen.
Geben Sie den Netzwerksicherungspfad ein, und wählen Sie dann Nextaus.
Wählen Sie alle gewünschten E-Mail-Benachrichtigungen aus, und wählen Sie dann Weiteraus.
Wählen Sie einen Sicherungszeitplan basierend auf Ihren Anforderungen aus, und wählen Sie dann Nextaus.
Bestätigen Sie Ihre Konfigurationseinstellungen, und wählen Sie Überprüfen Sieaus.
Der Sicherungs-Assistent überprüft, ob der Sicherungspfad vorhanden ist und ein Netzwerkpfad ist.
Beheben von Fehlern
Wenn ein Bereitschaftsprüfungsfehler auftritt, finden Sie in den folgenden Informationen Hilfe zur Problembehandlung.
Fehler: Dienstkontozugriff
Fehlermeldung:TF401009: The Azure DevOps service account NT AUTHORITY\LOCAL SERVICE cannot access network shares. Change to an account that can access the backup path.
Dieser Fehler tritt auf, wenn das Dienstkonto NT AUTHORITY\LOCAL SERVICE ist.
Lösung:
Erstellen Sie einen lokalen Benutzer mit den erforderlichen Zugriffsberechtigungen.
Wechseln Sie in der Azure DevOps Server-Verwaltungskonsole zum Bildschirm Anwendungsschicht und wählen Sie Konto ändernaus.
Ändern Sie das Dienstkonto in das neu erstellte lokale Benutzerkonto.
Wiederholen Sie den Sicherungsvorgang, um die Sicherung erfolgreich zu erstellen und die Bereitschaftsprüfungen erneut durchzuführen.
Erfolgreiche Sicherungskonfiguration:
Geplante Sicherungsprotokolle:
Geplante Sicherungen der Verwaltungskonsole:
Fehler: Protokolldatei
Beispielspeicherort der Protokolldatei:
C:\ProgramData\Microsoft\Azure DevOps\Server Configuration\Logs\Azure_DevOps_Server_Scheduled Backups_0627_192409.log
Beispielprotokolldatei-Fehlermeldung:
[7/1/2024 7:28:37 AM] [Error]``Exception Message: The backup of the file or filegroup "LeadingKey" is not permitted because it is not online. Container state: "Offline" (7). Restore status: 0. BACKUP can be performed by using the FILEGROUP or FILE clauses to restrict the selection to include only online data.``BACKUP DATABASE is terminating abnormally. (type SqlException)
Lösung:
Stellen Sie sicher, dass alle Dateigruppen online sind, bevor Sie die Sicherung ausführen.
Beispiel "LeadingKeyOffline":
Testen Sie den Sicherungsvorgang mithilfe von SQL-Abfragen, um Probleme mit bestimmten Dateigruppen zu identifizieren und zu beheben.