Partager via


Utiliser Azure SQL Database avec Azure DevOps Server

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

Suivez les étapes décrites dans cet article pour configurer Azure DevOps Server avec Azure SQL Database. Cette topologie comporte quelques étapes supplémentaires par rapport à l’utilisation d’un serveur SQL local.

Conditions préalables

Catégorie Spécifications
Version d’Azure DevOps Server Azure SQL Database ne peut être utilisé qu’avec Azure DevOps Server 2019 et versions ultérieures.
Environnement d’installation Azure DevOps Server installé sur une machine virtuelle Azure.
Authentification L’identité managée par le système est activée sur la machine virtuelle, qui est utilisée pour s’authentifier auprès de la base de données Azure SQL.
Appartenance au domaine La machine virtuelle est jointe à un domaine, mais pas à un groupe de travail.
Type de base de données Les bases de données Azure SQL sont des bases de données uniques. Les instances managées et les pools élastiques sont pris en charge dans Azure DevOps Server 2022 et versions ultérieures.
règles de pare-feu Les règles de pare-feu Azure SQL Database autorisent les connexions entrantes à partir de l’adresse IP ou du sous-réseau où Azure DevOps Server est hébergé. Pour ce faire, accédez à : portail Azure>Paramètres>Azure SQL Database>Pare-feu et réseaux virtuels> ajouter une nouvelle règle pour autoriser l’accès à partir de l’adresse IP publique ou du sous-réseau de votre serveur Azure DevOps.
Outils - Azure SQL Database provisionné et accessible à partir d’Azure. Enregistrement du nom du serveur, du nom de la base de données et de la méthode d’authentification.
- Azure DevOps Server 2022 s’exécutant dans votre environnement local.
- SSMS installé sur la même machine où Azure DevOps Server est installé.

Toutes les références SKU Usage général et Premium sont prises en charge, ainsi que les références S3 standard et ultérieures. Toutefois, les références SKU de base et les références S2 Standard ne sont pas prises en charge.

Les configurations d'Azure DevOps Server utilisant Azure SQL Database ne prennent pas en charge les anciennes versions des fonctionnalités de création de rapports de SQL Server Reporting Services associées aux caractéristiques de reporting de SQL Server Analysis Services. Au lieu de cela, vous pouvez utiliser Azure DevOps Analytics pour la création de rapports et l’analytique.

Azure SQL Database ne prend pas en charge les procédures stockées chiffrées.

Configurer la base de données Azure SQL

  1. Configurez une identité managée sur vos machines virtuelles. Nous prenons uniquement en charge les identités gérées par le système pour l’instant.

    Vous pouvez exécuter la configuration à l’aide de tous les mécanismes standard, notamment :

  2. Pour configurer une nouvelle instance Azure DevOps Server, créez deux bases de données Azure SQL :

    • AzureDevOps_Configuration
    • AzureDevOps_DefaultCollection
  3. Configurez l’authentification Microsoft Entra ID pour votre serveur Azure SQL Database. Créez-vous l’administrateur Microsoft Entra sur le serveur. Vous avez besoin d’autorisations d’administrateur sur la base de données pour effectuer les étapes de configuration restantes. Vous pouvez modifier cette autorisation ultérieurement.

    un. Exécutez la commande T-SQL suivante sur votre base de données principale. Remplacez VMName par le nom de la machine virtuelle dont vous ajoutez l’identité managée à la base de données :

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

    b. Exécutez la commande T-SQL suivante sur la configuration et toutes les bases de données de collecte :

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

    Votre base de données permet désormais à votre machine virtuelle de communiquer via l’identité managée.

    Remarque

    Si vous apportez des modifications à votre machine virtuelle Azure, telles que la restauration d’un instantané ou le changement de nom de la machine virtuelle, pour restaurer la connectivité :

Configurer le serveur Azure DevOps

Retournez à l’Assistant de configuration d’Azure DevOps Server. Si vous configurez une nouvelle instance, sélectionnez Il s’agit d’un nouveau déploiement Azure DevOps Server. Si vous mettez à niveau ou migrez et avez des données existantes dans vos bases de données, sélectionnez J’ai des bases de données existantes à utiliser pour ce déploiement Azure DevOps Server.

Lorsque vous accédez à la page Base de données de l’Assistant Configuration, spécifiez l’instance de serveur Azure SQL Database. En règle générale, l’instance de serveur se présente sous la forme de SQLInstanceName.database.windows.net.

Vous disposez maintenant d’une instance Azure DevOps Server qui s’exécute sur Azure SQL Database.

Se connecter à une base de données Azure SQL à partir de SSMS local

Procédez comme suit pour vous connecter à une base de données Azure SQL à partir de votre SSMS local :

  1. Exportez via SQL Server Management Studio (SSMS) à partir de la machine virtuelle exécutée dans le même réseau virtuel qu'un point de terminaison privé de SQL, vers le stockage d'objets blob ou le partage de fichiers.

    Capture d’écran montrant les boutons mis en surbrillance pour la sélection de l'Application de niveau d'exportation de données.

  2. Vous pouvez utiliser l'assistant d'exportation de l'application de niveau de données dans SQL Server Management Studio pour exporter la base de données Azure SQL vers un fichier .bacpac. Vous pouvez stocker le fichier .bacpac dans le stockage Blob Azure ou le partage de fichiers.

    Capture d’écran montrant l’écran d’introduction pour l’exportation de votre base de données.

  3. Sélectionnez avec le bouton droit la base de données SQL sur SQL Server logique depuis SSMS>Tâches>Exporter l’application de la couche de données avec l’assistant.

    Capture d’écran montrant l’emplacement de stockage de fichiers bacpac entré dans l’écran Paramètres d’exportation.

  4. Sélectionnez Suivant.

    Capture d’écran montrant le résumé de vos paramètres spécifiés.

  5. Sélectionnez l’emplacement pour stocker le fichier BACPAC.

    Capture d’écran montrant la page de message et de résultats complets de l’opération.

  6. Sélectionnez Fermer.

Les packages DAC se trouvent ici : C:\Users\{sample-user-name}\OneDrive - Microsoft\Documents\SQL Server Management Studio\DAC Packages.

Connecter Azure SQL Database à partir d’Azure DevOps Server 2022

La connexion d’Azure SQL Database à partir d’Azure DevOps Server 2022 (local) implique la configuration de l’accès, la garantie de la connectivité et l’utilisation des informations d’identification appropriées. Procédez comme suit pour connecter Azure SQL Database à partir d’Azure DevOps Server 2022.

Se connecter à Azure SQL Database

  1. Obtenir les détails de connexion Azure SQL Database :

    • Nom du serveur : <your-server-name>.database.windows.net
    • Nom de la base de données : <your-database-name>
    • Méthode d’authentification : Authentification SQL Server (nom d’utilisateur/mot de passe) ou authentification Microsoft Entra ID.
  2. Se connecter à l’aide de SQL Server Management Studio (SSMS) : a. Ouvrez SQL Server Management Studio sur la machine sur laquelle Azure DevOps Server est installé. b. Se connecter à Azure SQL Database : c. Lancez SSMS. d. Dans la fenêtre Se connecter au serveur :

    • Entrez le nom du serveur : <your-server-name>.database.windows.net
    • Choisissez Authentification : Authentification SQL Server.
    • Entrez votre nom d’utilisateur et votre mot de passe.
    • Sélectionnez Se connecter. Une fois connecté, Azure SQL Database est répertorié sous l’Explorateur d’objets dans SSMS.
  3. Tester la connectivité : Exécutez une requête ou une commande dans SSMS :

     SELECT @@VERSION;
    

    Cette requête retourne la version SQL Server de votre base de données Azure SQL Database, confirmant que la connexion réussit.

  4. Utiliser la connexion dans Azure DevOps Server : Une fois que vous avez vérifié la connectivité à partir de SSMS, vous pouvez utiliser cette connexion dans Azure DevOps Server pour différentes tâches telles que :

    • Déploiements automatisés : configurez des pipelines de mise en production dans Azure DevOps Server pour déployer des modifications de base de données.
    • Migration des données : utilisez des scripts SQL ou des outils de données intégrés à Azure DevOps Server.
    • Intégration continue : intégrez les modifications de base de données dans vos pipelines CI/CD.

Pourboire

  • Être sécurisé : envisagez d’utiliser l’ID Microsoft Entra pour un accès plus sécurisé.
  • Gérer les informations d’identification : Stocker les informations d’identification de manière sécurisée et éviter de les coder en dur dans des scripts ou des configurations.
  • Monitor : Surveiller les connexions et l’utilisation de la base de données pour garantir la sécurité et les performances.

Connectez Azure SQL Database à partir d’Azure DevOps Server 2022 en cours d’exécution locale, ce qui simplifie la gestion et l’intégration des bases de données à vos processus de développement et de déploiement. Ajustez les configurations et les mesures de sécurité en fonction des stratégies et exigences de votre organisation.

Utiliser votre connexion Azure SQL Database dans Azure DevOps Server 2022

  1. Préparer Azure DevOps Server :
    a. Vérifiez qu’Azure DevOps Server 2022 est installé et configuré sur votre environnement local.</
    b. Accès au serveur Azure DevOps avec les autorisations appropriées pour créer et gérer des pipelines.

  2. configurer le projet et le référentiel Azure DevOps (si ce n’est pas déjà fait) :
    a. Créez un projet Azure DevOps existant ou utilisez-le.
    b. Configurez un référentiel Git ou TFVC pour stocker vos définitions et scripts de pipeline.

  3. Créer un pipeline :
    a. Accédez à votre projet Azure DevOps.
    b. Sélectionnez pipelines>pipelines>Nouveau pipeline.
    c. Sélectionnez le modèle de pipeline approprié en fonction de vos besoins. Pour Azure SQL Database, vous pouvez commencer par un travail vide ou choisir un modèle adapté à vos besoins de déploiement (par exemple, Azure Pipeline).
    d. Modifiez le fichier YAML du pipeline ou utilisez l’éditeur classique pour définir vos étapes et tâches de pipeline.

  4. Ajouter des tâches à déployer sur Azure SQL Database :

    • tâche : Déploiement de base de données SQL Server : Utiliser la tâche SqlAzureDacpacDeployment pour déployer des modifications dans votre base de données Azure SQL. Exemple d’extrait de code YAML :

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

      Remplacez <your-server-name>, <your-database-name>, $(sqlUsername)et $(sqlPassword) par des valeurs ou des variables appropriées.

    • tâche : Requête Azure SQL : Utiliser la tâche AzureSqlQuery pour exécuter des requêtes SQL sur votre base de données Azure SQL. Exemple d’extrait de code YAML :

      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. gérer en toute sécurité les informations d’identification : utiliser des variables Azure DevOps ou l’intégration d’Azure Key Vault pour gérer des informations sensibles telles que les informations d’identification SQL Server (sqlUsername et sqlPassword).

  6. Déclencher et exécuter le pipeline :

    • Enregistrez et validez les modifications de votre pipeline.
    • Déclenchez le pipeline manuellement ou configurez des déclencheurs (par exemple, lors de la validation du code, de la planification) conformément à votre stratégie de déploiement.
  7. Surveiller l’exécution du pipeline :

    • Surveillez les exécutions de pipeline dans Azure DevOps pour vous assurer que les déploiements sur Azure SQL Database réussissent.
    • Passez en revue les journaux et les résultats pour détecter et résoudre les problèmes lors du déploiement.

Pourboire

  • Intégrer avec les pipelines de mise en production : Intégrez votre pipeline de build avec les pipelines de mise en production pour des scénarios de déploiement et des approbations plus complexes.
  • Apporter des modifications incrémentielles de base de données : Utiliser des outils tels que SQL Server Data Tools (SSDT) ou des migrations pour gérer les modifications incrémentielles apportées à votre schéma de base de données.
  • Utiliser le contrôle de version : conserver vos scripts SQL et modifications de base de données sous contrôle de version pour suivre les modifications et garantir la reproductibilité.

Ajustez les configurations et les tâches en fonction de vos besoins de déploiement spécifiques et des exigences organisationnelles.

Créer une sauvegarde SQL Server

La création d’une sauvegarde SQL Server pour Azure DevOps Server 2022 à l’aide de la console d’administration d’Azure DevOps Server implique la configuration des paramètres de sauvegarde et la planification des sauvegardes régulières. Procédez comme suit pour créer une sauvegarde SQL Server.

Conditions préalables pour la sauvegarde

Catégorie Spécifications
Accès Administrateur l’accès au serveur sur lequel le serveur Azure DevOps est installé.
Autorisations Autorisation de configurer des sauvegardes et d’accéder à SQL Server Management Studio.

Créer une sauvegarde

  1. Lancez la console d’administration du serveur Azure DevOps sur le serveur sur lequel Azure DevOps Server est installé et sélectionnez niveau Application>sauvegardes planifiées>créer des sauvegardes planifiées.

    Capture d’écran montrant les boutons de sélection dans la console d’administration pour créer une sauvegarde planifiée.

  2. Entrez le chemin de sauvegarde réseau, puis sélectionnez Suivant.

    Capture d’écran montrant le chemin de sauvegarde réseau entré.

  3. Sélectionnez les alertes par e-mail souhaitées, puis sélectionnez suivant .

    Capture d’écran montrant le bouton Suivant mis en surbrillance pour la création du processus de chemin de sauvegarde réseau.

  4. Choisissez une planification de sauvegarde en fonction de vos besoins, puis sélectionnez suivant .

    Capture d’écran montrant la planification de sauvegarde sélectionnée et le bouton Suivant mis en surbrillance.

  5. Confirmez vos paramètres de configuration et sélectionnez Vérifier.

    Capture d’écran montrant le bouton Vérifier mis en surbrillance sur l’écran paramètres de configuration.

    L’Assistant Sauvegardes vérifie que le chemin de sauvegarde existe et qu’il s’agit d’un chemin réseau.

    Capture d’écran montrant la progression de la vérification de l'état de préparation.

Résoudre les erreurs

En cas d’échec de vérification de préparation, consultez les informations suivantes pour obtenir de l’aide sur la résolution des problèmes.

Erreur : Accès au compte de service

Capture d’écran montrant une erreur d’environnement lors de la vérification de l'état de préparation.

Message d’erreur :TF401009: The Azure DevOps service account NT AUTHORITY\LOCAL SERVICE cannot access network shares. Change to an account that can access the backup path. Cette erreur se produit lorsque le compte de service est NT AUTHORITY\LOCAL SERVICE.

Capture d’écran montrant le résumé de la couche d'application pour le service local de l'autorité NT.

Solution :

  1. Créez un utilisateur local avec les autorisations d’accès nécessaires. Capture d’écran montrant l’utilisateur local nouvellement créé et l’accès.

  2. Dans la console d’administration du serveur Azure DevOps, accédez à l’écran de la couche Application, puis sélectionnez Modifier le compte.

  3. Remplacez le compte de service par le compte d’utilisateur local nouvellement créé. Capture d’écran montrant les nouvelles appartenances aux groupes d’utilisateurs.

  4. Rétablir le processus de sauvegarde pour créer la sauvegarde et réexécuter les vérifications de préparation. Capture d’écran montrant que toutes les vérifications ont réussi.

    Configuration de sauvegarde réussie :

    Capture d’écran montrant la configuration de sauvegarde réussie.

    Journaux de sauvegarde planifiés :

    Capture d’écran montrant les fichiers journaux de sauvegarde planifiés.

    Sauvegardes planifiées de la console d’administration :

    Capture d’écran montrant la console d’administration montrant l’écran des sauvegardes planifiées.

Erreur : Fichier journal

Capture d’écran montrant le lien mis en surbrillance pour effectuer une sauvegarde complète maintenant.

Exemple d’emplacement du fichier journal :

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

Exemple de message d’erreur du fichier journal :

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

Solution :

  • Vérifiez que tous les groupes de fichiers sont en ligne avant d’effectuer la sauvegarde.

    exemple LeadingKeyOffline :Capture d’écran montrant les propriétés de base de données et l’exemple de fichier de base de données LeadingKey.

  • Testez le processus de sauvegarde à l’aide de requêtes SQL pour identifier et résoudre les problèmes liés à des groupes de fichiers spécifiques.