Delen via


Azure SQL Database gebruiken met Azure DevOps Server

Azure DevOps Server | Azure DevOps Server |Azure DevOps Server 2022 | Azure DevOps Server 2020

Gebruik de stappen in dit artikel om Azure DevOps Server te configureren met Azure SQL Database. Deze topologie heeft nog enkele stappen vergeleken met het gebruik van een on-premises SQL-server.

Voorwaarden

Categorie Eisen
Azure DevOps Server-versie Azure SQL Database kan alleen worden gebruikt met Azure DevOps Server 2019 en latere versies.
Installatieomgeving Azure DevOps Server geïnstalleerd op een Virtuele Azure-machine.
Authenticatie De virtuele machine (VM) heeft door het systeem beheerde identiteit ingeschakeld, die wordt gebruikt voor verificatie bij de Azure SQL-database.
Domeinlidmaatschap De VIRTUELE machine is gekoppeld aan een domein, maar niet aan een werkgroep.
Databasetype Azure SQL-databases zijn individuele databases. Beheerde exemplaren en elastische pools worden ondersteund in Azure DevOps Server 2022 en hoger.
firewallregels Firewallregels van Azure SQL Database staan binnenkomende verbindingen toe vanaf het IP-adres of subnet waar Azure DevOps Server wordt gehost. Ga hiervoor naar: Azure Portal>Azure SQL Database>Settings>Firewalls en virtuele netwerken> een nieuwe regel toevoegen om toegang toe te staan vanuit het openbare IP-adres of subnet van uw Azure DevOps Server.
Gereedschap - Azure SQL Database ingericht en toegankelijk vanuit Azure. Record van de servernaam, databasenaam en verificatiemethode.
: Azure DevOps Server 2022 die wordt uitgevoerd in uw on-premises omgeving.
: SSMS geïnstalleerd op dezelfde computer waarop Azure DevOps Server is geïnstalleerd.

Alle SKU's voor algemeen gebruik en Premium worden ondersteund, evenals Standard-SKU's S3 en hoger. "Echter, Basic-SKU's en Standard-S2-SKU's worden niet ondersteund."

Azure DevOps Server-configuraties die gebruikmaken van Azure SQL Database bieden geen ondersteuning voor verouderde SQL Server Reporting Services met sql Server Analysis Services-rapportagefuncties. In plaats daarvan kunt u Azure DevOps Analytics gebruiken voor rapportage en analyse.

Azure SQL Database biedt geen ondersteuning voor versleutelde opgeslagen procedures.

Azure SQL Database instellen

  1. Configureer een beheerde identiteit op uw virtuele machines. Op dit moment ondersteunen we alleen door het systeem beheerde identiteiten.

    U kunt de configuratie uitvoeren met behulp van alle standaardmechanismen, waaronder de volgende:

  2. Als u een nieuw Azure DevOps Server-exemplaar wilt instellen, maakt u twee Azure SQL-databases:

    • AzureDevOps_Configuration
    • AzureDevOps_StandaardCollectie
  3. Configureer Microsoft Entra ID-verificatie voor uw Azure SQL Database-server. Maak uzelf de Microsoft Entra-beheerder op de server. U hebt beheerdersmachtigingen voor de database nodig om de resterende configuratiestappen te voltooien. U kunt deze machtiging later wijzigen.

    een. Voer de volgende T-SQL-opdracht uit op uw hoofddatabase. Vervang VMName door de naam van de virtuele machine waarvan u de beheerde identiteit toevoegt aan de database:

    CREATE USER [VMName] FROM EXTERNAL PROVIDER
    ALTER ROLE [dbmanager] ADD MEMBER [VMName]
    

    b. Voer de volgende T-SQL-opdracht uit in de configuratie en alle verzamelingsdatabases:

    CREATE USER [VMName] FROM EXTERNAL PROVIDER  
    ALTER ROLE [db_owner] ADD MEMBER [VMName]  
    ALTER USER [VMName] WITH DEFAULT_SCHEMA=dbo
    

    Met uw database kan uw virtuele machine nu communiceren via de beheerde identiteit.

    Notitie

    Als u wijzigingen aanbrengt in uw Virtuele Azure-machine, zoals het herstellen van een momentopname of het wijzigen van de naam van de VIRTUELE machine, kunt u de connectiviteit herstellen:

Azure DevOps Server configureren

Ga terug naar de configuratiewizard van Azure DevOps Server. Als u een nieuw exemplaar instelt, selecteert u Dit is een nieuwe Azure DevOps Server-implementatie. Als u een upgrade uitvoert of migreert en bestaande gegevens in uw databases hebt, selecteert u ik bestaande databases heb om te gebruiken voor deze Azure DevOps Server-implementatie.

Wanneer u naar de pagina Database in de configuratiewizard gaat, geeft u het exemplaar van de Azure SQL Database-server op. Meestal heeft het serverexemplaar de vorm van SQLInstanceName.database.windows.net.

U hebt nu een Azure DevOps Server-exemplaar dat wordt uitgevoerd in Azure SQL Database.

Verbinding maken met een Azure SQL-database vanuit on-premises SSMS

Voer de volgende stappen uit om vanuit uw on-premises SSMS verbinding te maken met een Azure SQL-database:

  1. Exporteren via SQL Server Management Studio met SSMS vanaf de virtuele machine die in hetzelfde virtuele netwerk draait als een privé-eindpunt van SQL naar blobopslag of bestandsshare.

    Schermopname toont gemarkeerde knoppen voor de selectie van de toepassing Export Data Tier.

  2. U kunt gebruik maken van de toepassingswizard van SQL Server Management Studio om de Azure SQL-database te exporteren naar een .bacpac-bestand. U kunt het BACPAC-bestand opslaan in Azure Blob Storage of bestandsshare.

    Schermopname toont het introductiescherm voor het exporteren van uw database.

  3. Selecteer met de rechtermuisknop de SQL Database op de logische SQL Server in SSMS>Tasks>de Wizard Gegevenslaagtoepassing exporteren.

    Schermopname toont de ingevoerde opslaglocatie voor bacpac-bestanden in het scherm Instellingen exporteren.

  4. Selecteer Volgende.

    Schermopname toont een samenvatting van de opgegeven instellingen.

  5. Selecteer de locatie om het BACPAC-bestand op te slaan.

    Schermopname toont het volledige bericht en de resultatenpagina van de bewerking.

  6. Selecteer Sluit.

De DAC-pakketten bevinden zich hier: C:\Users\{sample-user-name}\OneDrive - Microsoft\Documents\SQL Server Management Studio\DAC Packages.

Azure SQL Database verbinden vanuit Azure DevOps Server 2022

Het verbinden van Azure SQL Database vanuit Azure DevOps Server 2022 (on-premises) omvat het configureren van toegang, het garanderen van connectiviteit en het gebruik van de juiste referenties. Volg de volgende stappen om Azure SQL Database te verbinden vanuit Azure DevOps Server 2022.

Verbinding maken met Azure SQL Database

  1. Azure SQL Database-verbindingsgegevens ophalen:

    • Servernaam: <your-server-name>.database.windows.net
    • Databasenaam: <your-database-name>
    • Verificatiemethode: SQL Server-verificatie (gebruikersnaam/wachtwoord) of Microsoft Entra ID-verificatie.
  2. Verbinding maken met behulp van SQL Server Management Studio (SSMS): a. Open SQL Server Management Studio op de computer waarop Azure DevOps Server is geïnstalleerd. b. Verbinding maken met Azure SQL Database: c. Start SSMS. d. In het venster Verbinding maken met server:

    • Voer de servernaam in: <your-server-name>.database.windows.net
    • Kies Verificatie: SQL Server-verificatie.
    • Voer uw gebruikersnaam en wachtwoord in.
    • Selecteer Verbinding maken. Nadat u verbinding hebt gemaakt, wordt de Azure SQL Database weergegeven onder Objectverkenner in SSMS.
  3. Connectiviteit testen: Voer een query of opdracht uit in SSMS:

     SELECT @@VERSION;
    

    Deze query retourneert de SQL Server-versie van uw Azure SQL Database, waarbij wordt bevestigd dat de verbinding is geslaagd.

  4. Verbinding gebruiken in Azure DevOps Server: Zodra u de verbinding vanuit SSMS hebt gecontroleerd, kunt u deze verbinding binnen Azure DevOps Server gebruiken voor verschillende taken, zoals:

    • Geautomatiseerde implementaties: releasepijplijnen instellen in Azure DevOps Server om databasewijzigingen te implementeren.
    • Gegevensmigratie: Gebruik SQL-scripts of gegevenshulpprogramma's die zijn geïntegreerd met Azure DevOps Server.
    • Continue integratie: databasewijzigingen integreren in uw CI/CD-pijplijnen.

Aanbeveling

  • Veilig zijn: Overweeg microsoft Entra-id te gebruiken voor veiligere toegang.
  • Referenties beheren: Referenties veilig opslaan en voorkomen dat ze in scripts of configuraties worden vastgelegd.
  • Bewaken: Databaseverbindingen en -gebruik bewaken om beveiliging en prestaties te garanderen.

Verbind Azure SQL Database vanuit Azure DevOps Server 2022 dat on-premises wordt uitgevoerd, zodat gestroomlijnd databasebeheer en integratie mogelijk is met uw ontwikkelings- en implementatieprocessen. Pas configuraties en beveiligingsmaatregelen aan op basis van het beleid en de vereisten van uw organisatie.

Uw Azure SQL Database-verbinding gebruiken in Azure DevOps Server 2022

  1. Azure DevOps Server voorbereiden:
    a. Zorg ervoor dat Azure DevOps Server 2022 is geïnstalleerd en geconfigureerd in uw on-premises omgeving.</
    b. Toegang tot de Azure DevOps-server met de juiste machtigingen voor het maken en beheren van pijplijnen.

  2. Azure DevOps-project en -opslagplaats instellen (indien nog niet gedaan):
    a. Maak een nieuw project of gebruik een bestaand Azure DevOps-project.
    b. Stel een Git- of TFVC-opslagplaats in om uw pijplijndefinities en -scripts op te slaan.

  3. Een pijplijn maken:
    a. Ga naar uw Azure DevOps-project.
    b. Selecteer Pijpleidingen>Pijpleidingen>Nieuwe pijpleiding.
    c. Selecteer de juiste pijplijnsjabloon op basis van uw vereisten. Voor Azure SQL Database kunt u beginnen met een lege taak of een sjabloon kiezen die aansluit bij uw implementatiebehoeften (bijvoorbeeld Azure Pipeline).
    d. Bewerk het YAML-pijplijnbestand of gebruik de klassieke editor om uw pijplijnfasen en -taken te definiëren.

  4. Taken toevoegen om te implementeren in Azure SQL Database:

    • taak: SQL Server Database-implementatie: Gebruik de SqlAzureDacpacDeployment taak om wijzigingen in uw Azure SQL Database te implementeren. Voorbeeld van YAML-fragment:

      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)'
      

      Vervang <your-server-name>, <your-database-name>, $(sqlUsername)en $(sqlPassword) door de juiste waarden of variabelen.

    • taak: Azure SQL-query: gebruik de AzureSqlQuery taak om SQL-query's uit te voeren op uw Azure SQL Database. Voorbeeld van YAML-fragment:

      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'
      
  5. Referenties veilig beheren: Azure DevOps-variabelen of Azure Key Vault-integratie gebruiken voor het beheren van gevoelige informatie, zoals SQL Server-referenties (sqlUsername en sqlPassword).

  6. pijplijn activeren en uitvoeren:

    • Sla uw pijplijnwijzigingen op en voer deze door.
    • Activeer de pijplijn handmatig of stel triggers in (bijvoorbeeld bij het doorvoeren van code, planning) volgens uw implementatiestrategie.
  7. Pijplijnuitvoering controleren:

    • Bewaak pijplijnuitvoeringen in Azure DevOps om ervoor te zorgen dat implementaties in Azure SQL Database zijn geslaagd.
    • Bekijk logboeken en uitvoer om eventuele problemen tijdens de implementatie op te lossen.

Aanbeveling

  • integreren met release-pijplijnen: integreer uw build-pijplijn met release-pijplijnen voor complexere implementatiescenario's en goedkeuringen.
  • incrementele databasewijzigingen aanbrengen: Hulpprogramma's zoals SQL Server Data Tools (SSDT) of migraties gebruiken om incrementele wijzigingen in uw databaseschema te beheren.
  • Versiebeheer gebruiken: Houd uw SQL-scripts en databasewijzigingen onder versiebeheer om wijzigingen bij te houden en reproduceerbaarheid te garanderen.

Pas configuraties en taken aan op basis van uw specifieke implementatiebehoeften en organisatievereisten.

Een SQL Server-back-up maken

Het maken van een SQL Server-back-up voor Azure DevOps Server 2022 met behulp van de Azure DevOps Server Administration Console omvat het configureren van back-upinstellingen en het plannen van regelmatige back-ups. Volg de volgende stappen om een SQL Server-back-up te maken.

Vereisten voor back-up

Categorie Eisen
Toegang- Administrator toegang tot de server waarop de Azure DevOps-server is geïnstalleerd.
toestemmingen Machtiging voor het configureren van back-ups en toegang tot SQL Server Management Studio.

Back-up maken

  1. Start de Azure DevOps Server-beheerconsole op de server waarop Azure DevOps Server is geïnstalleerd en selecteer toepassingslaag>Geplande back-ups>Geplande back-ups maken.

    Schermopname toont knoppen voor selectie in de beheerconsole om een geplande back-up te maken.

  2. Voer het back-uppad van het netwerk in en selecteer vervolgens Volgende.

    Schermopname toont het ingevoerde pad voor netwerkback-up.

  3. Selecteer de gewenste e-mailwaarschuwingen en selecteer vervolgens Volgende.

    Schermopname toont de gemarkeerde knop Volgende voor het aanmaken van het proces voor netwerkbackuppad.

  4. Kies een back-upschema op basis van uw vereisten en selecteer vervolgens Volgende.

    Schermopname toont het geselecteerde back-upschema en de gemarkeerde knop Volgende.

  5. Bevestig uw configuratie-instellingen en selecteer Controleer.

    Schermopname toont gemarkeerde knop Verifiëren op het scherm configuratie-instellingen.

    De back-upwizard controleert of het back-uppad bestaat en een netwerkpad is.

    Schermafbeelding toont voortgang van de gereedheidscontrole.

Fouten oplossen

Als er een fout is opgetreden bij de gereedheidscontrole, raadpleegt u de volgende informatie voor hulp bij het oplossen van problemen.

Fout: Toegang tot Service-account

schermopname toont de omgevingsfout tijdens de gereedheidscontrole.

foutbericht:TF401009: The Azure DevOps service account NT AUTHORITY\LOCAL SERVICE cannot access network shares. Change to an account that can access the backup path. Deze fout treedt op wanneer het serviceaccount NT AUTHORITY\LOCAL SERVICE is.

Schermopname met samenvatting van de toepassingslaag voor lokale NT-instantieservice.

oplossing:

  1. Maak een lokale gebruiker met de benodigde toegangsmachtigingen. Schermopname toont nieuw gemaakte lokale gebruiker en toegang.

  2. Ga in de Azure DevOps Server-beheerconsole naar het scherm Toepassingslaag en selecteer Account wijzigen.

  3. Wijzig het serviceaccount in het zojuist gemaakte lokale gebruikersaccount. Schermopname toont nieuwe lidmaatschappen van gebruikersgroepen.

  4. Voer het back-upproces opnieuw uit om de back-up te maken en de gereedheidscontroles opnieuw uit te voeren. Schermopname toont dat alle controles zijn geslaagd.

    Geslaagde back-upconfiguratie:

    Schermopname van een geslaagde back-upconfiguratie.

    Geplande backup-logboeken:

    Schermopname van geplande back-uplogboekbestanden.

    Geplande back-ups van de beheerconsole:

    Screenshot van de beheerconsole waarop het scherm voor geplande back-ups te zien is.

Fout: Logboekbestand

Schermopname toont gemarkeerde koppeling om nu een volledige back-up te maken.

Voorbeeldlocatie van logboekbestand:

C:\ProgramData\Microsoft\Azure DevOps\Server Configuration\Logs\Azure_DevOps_Server_Scheduled Backups_0627_192409.log

Voorbeeld van een foutbericht over logboekbestand:

[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)

oplossing:

  • Zorg ervoor dat alle bestandsgroepen online zijn voordat u de back-up uitvoert.

    LeadingKeyOffline-voorbeeld:Schermopname toont database-eigenschappen en voorbeeld van het LeadingKey-databasebestand.

  • Test het back-upproces met behulp van SQL-query's om eventuele problemen met specifieke bestandsgroepen te identificeren en op te lossen.