Verwenden von Azure SQL-Datenbank mit Azure DevOps Server
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 zusätzliche Schritte im Vergleich zur Verwendung eines lokalen SQL-Servers.
Anforderungen
- Azure SQL-Datenbank können nur mit Azure DevOps Server 2019 und höheren Versionen verwendet werden.
- Sie müssen den Azure DevOps Server auf einem virtuellen Azure-Computer installieren.
- Der virtuelle Computer muss die vom System verwaltete Identität aktiviert haben, die zur Authentifizierung bei der Azure SQL-Datenbank verwendet wird.
- Der virtuelle Computer muss einer Domäne, aber nicht einer Arbeitsgruppe beigetreten sein.
- Azure SQL-Datenbanken müssen einzelne Datenbanken sein. Verwaltete Instanzen und elastische Pools werden in Azure DevOps Server 2022 und höher unterstützt.
Alle Allgemeinzweck- und Premium-SKUs werden unterstützt. Standard-SKUs S3 und höher werden ebenfalls unterstützt. Grundlegende SKUs und Standard-SKUs S2 und unten werden nicht unterstützt. Azure DevOps Server-Konfigurationen, die Azure SQL-Datenbank verwenden, unterstützen keine älteren SQL Server Reporting Services mit SQL Server Analysis Services-Berichterstellungsfeatures. Stattdessen können Sie azure DevOps Analytics verwenden.
Das Upgrade auf Azure DevOps Server wird nur von Team Foundation Server 2015 und höher unterstützt, wenn Sie Azure SQL-Datenbank 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
Hinweis
Sie können diesen Schritt überspringen, wenn Sie vorhandene Datenbanken für eine der folgenden Methoden verwenden:
- Aktualisieren Sie eine neue Version von Azure DevOps Server.
- Migrieren Sie eine aktuelle Instanz von Azure DevOps Server zu Azure SQL-Datenbank.
Konfigurieren Sie die Azure Active Directory-Authentifizierung für Ihren Azure SQL-Datenbank-Server. Machen Sie sich selbst zum Active Directory-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.
Aktivieren Sie Ihre verwaltete Identität oder Identitäten, wenn Sie mehrere Server verwenden, um sich bei Ihrer Azure SQL-Datenbank anzumelden und ihm die entsprechenden Berechtigungen zu erteilen. Stellen Sie mithilfe von SQL Server Management Studio eine Verbindung mit dem Datenbankserver her. Stellen Sie eine Verbindung mithilfe eines Azure Active Directory-Benutzers mit Active Directory-Authentifizierung her. Sie können Azure Active Directory-Benutzer nicht bearbeiten, wenn Sie sich bei Azure SQL-Datenbank unter SQL-Authentifizierung anmelden.
a. Führen Sie den folgenden T-SQL-Befehl in der
main
Datenbank aus:CREATE USER [VMName] FROM EXTERNAL PROVIDER ALTER ROLE [dbmanager] ADD MEMBER [VMName]
Ersetzen Sie VMName durch den Namen des virtuellen Computers, dessen verwaltete Identität Sie der Datenbank hinzufügen.
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
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 das SQL Server Management Studio mithilfe von SSMS von der VM, die im selben VNET wie ein privater Endpunkt ausgeführt wird, von SQL in den Blob-Speicher oder die Dateifreigabe.
Sie können den SQL Server Management Studio-Assistenten zum Exportieren von Datenebenen 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.
Wählen Sie mit der rechten Maustaste die SQL-Datenbank auf logischem SQL Server aus SSMS>Aufgaben>Assistent zum Exportieren von Datenebenenanwendung 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.
Voraussetzungen
Kategorie | Anforderungen |
---|---|
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. |
Herstellen einer Verbindung mit azure SQL-Datenbank
Abrufen von 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:
Konnektivität testen: Führen Sie eine Abfrage oder einen Befehl in SSMS aus, um die Konnektivität zu überprüfen:
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.
Trinkgeld
- 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.
- Lösen Sie die Pipeline manuell aus oder richten Sie Trigger ein (z. B. bei Code-Commit, Zeitplan) gemäß Ihrer Bereitstellungsstrategie.
Ü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.
Trinkgeld
- 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 |
---|---|
Access | 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
Im Falle eines Bereitschaftsprüfungsfehlers 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 führen Sie die Bereitschafts-Prüfungen erneut aus.
Erfolgreiche Sicherungskonfiguration:
Geplante Sicherungsprotokolle:
geplante Sicherungen der Verwaltungskonsole:
Fehler: Protokolldatei
Beispielspeicherort der Protokolldatei:C:\ProgramData\Microsoft\Azure DevOps\Server Configuration\Logs\TFS_Scheduled Backups_0627_192409.log
Beispielprotokolldateifehlermeldung:[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.