Configurer des pipelines pour utiliser de manière sécurisée des variables et des paramètres

Dans ce labo, vous allez découvrir comment configurer des pipelines pour utiliser de manière sécurisée des variables et des paramètres.

Ces exercices prennent environ 20 minutes.

Avant de commencer

Vous aurez besoin d’un abonnement Azure, d’une organisation Azure DevOps et de l’application eShopOnWeb pour suivre les labos.

Instructions

Exercice 1 : Vérifier les types de paramètres et variables

Tâche 1 : (ignorer si déjà effectuée) importer et exécuter le pipeline CI

Commençons par importer le pipeline CI nommé eshoponweb-ci.yml.

  1. Accédez au Portail Azure DevOps sur https://aex.dev.azure.com et ouvrez votre organisation.

  2. Ouvrez le projet eShopOnWeb dans Azure DevOps.

  3. Accédez à Pipelines > Pipelines.

  4. Sélectionnez le bouton Créer un pipeline.

  5. Sélectionnez Azure Repos Git (Yaml).

  6. Sélectionnez le référentiel eShopOnWeb.

  7. Sélectionnez Fichier YAML Azure Pipelines existant.

  8. Sélectionnez le fichier /.ado/eshoponweb-ci.yml, puis cliquez sur Continuer.

  9. Sélectionnez le bouton Exécuter pour exécuter le pipeline.

    Remarque : votre pipeline est nommé en fonction du nom du projet. Vous le renommez pour identifier plus facilement le pipeline.

  10. Accédez à Pipelines > Pipelines et sélectionnez le pipeline récemment créé. Sélectionnez les points de suspension puis Renommer/déplacer.

  11. Nommez-le eshoponweb-ci, puis sélectionnez Enregistrer.

Tâche 2 : Vérifier les types de paramètre pour les pipelines YAML

Dans cette tâche, vous allez définir des types de paramètre et des paramètres pour le pipeline.

  1. Accédez à Pipelines > Pipelines et sélectionnez le pipeline eshoponweb-ci.

  2. Sélectionnez Modifier.

  3. Ajoutez les paramètres suivants figurant au-dessus des sections des travaux en haut du fichier YAML :

    parameters:
    - name: dotNetProjects
      type: string
      default: '**/*.sln'
    - name: testProjects
      type: string
      default: 'tests/UnitTests/*.csproj'
    
    jobs:
    - job: Build
      pool: eShopOnWebSelfPool
      steps:
    
    
  4. Remplacez les chemins d’accès codés en dur dans les tâches « Restaurer », « Générer » et « Tester » par les paramètres que vous venez de créer.

    • Remplacez les projets : **/*.sln par des projets : $ dans les tâches Restore et Build.
    • Remplacez les projets : tests/UnitTests/*.csproj par des projets : $ dans la tâche Test

    Les tâches « Restaurer », « Générer » et « Tester » de la section des étapes du fichier YAML doivent ressembler à ceci :

     steps:
     - task: DotNetCoreCLI@2
       displayName: Restore
       inputs:
         command: 'restore'
         projects: $
         feedsToUse: 'select'
        
     - task: DotNetCoreCLI@2
       displayName: Build
       inputs:
         command: 'build'
         projects: $
        
     - task: DotNetCoreCLI@2
       displayName: Test
       inputs:
         command: 'test'
         projects: $
        
    
  5. Cliquez sur Valider et enregistrer pour enregistrer les modifications, puis cliquez sur Enregistrer.

  6. Accédez à Pipelines > Pipelines et ouvrez le pipeline eshoponweb-ci en qui se déclenche automatiquement.

  7. Vérifiez que l’exécution du pipeline se termine avec succès.

    Capture d’écran de l’exécution de pipeline avec des paramètres.

Tâche 3 : Sécurisation des variables et des paramètres

Dans cette tâche, vous allez sécuriser les variables et les paramètres de votre pipeline à l’aide de groupes de variables.

  1. Accédez à Pipelines > Bibliothèque.

  2. Sélectionnez le bouton + Groupe de variables pour créer un groupe de variables nommé BuildConfigurations.

  3. Ajoutez une variable nommée buildConfiguration et définissez sa valeur sur Release.

  4. Enregistrez le groupe de variables.

    Capture d’écran du groupe de variables avec BuildConfigurations.

  5. Sélectionnez le bouton Autorisations de pipeline, puis sélectionnez le bouton + pour ajouter un nouveau pipeline.

  6. Sélectionnez le pipeline eshoponweb-ci pour permettre au pipeline d’utiliser le groupe de variables.

    Capture d’écran des autorisations de pipeline.

    Remarque : vous pouvez également définir des utilisateurs ou des groupes spécifiques pour pouvoir modifier le groupe de variables en cliquant sur le bouton Sécurité.

  7. Accédez à Pipelines > Pipelines.

  8. Ouvrez le pipeline eshoponweb-ci-, puis sélectionnez Modifier.

  9. En haut du fichier yaml, juste sous les paramètres, référencez le groupe de variables en ajoutant ce qui suit :

    variables:
      - group: BuildConfigurations
    
  10. Dans la tâche « Générer », ajoutez le paramètre de configuration à la tâche pour utiliser la configuration de build à partir du groupe de variables.

             command: 'build'
             projects: $
             configuration: $(buildConfiguration)
    
  11. Cliquez sur Valider et enregistrer pour enregistrer les modifications, puis cliquez sur Enregistrer.

  12. Ouvrez l’exécution de pipeline eshoponweb-ci. Il doit s’exécuter correctement avec la configuration de build définie sur « Lancement ». Vous pouvez le vérifier en examinant les journaux de la tâche « Générer ».

Remarque : si vous ne voyez pas la configuration de build définie sur « Lancement » dans les journaux, activez les diagnostics du système et réexécutez le pipeline pour afficher la valeur de configuration.

Remarque : sn suivant cette approche, vous pouvez sécuriser vos variables et paramètres en utilisant des groupes de variables sans avoir à les coder en dur dans les fichiers YAML.

Tâche 4 : Validation des variables et paramètres obligatoires

Dans cette tâche, vous allez valider les variables obligatoires avant l’exécution du pipeline.

  1. Accédez à Pipelines > Pipelines.

  2. Ouvrez le pipeline eshoponweb-ci-, puis sélectionnez Modifier.

  3. Dans la section des étapes, au début (en suivant la ligne steps), ajoutez une nouvelle tâche de script pour valider les variables obligatoires avant l’exécution du pipeline.

     - script: |
         IF NOT DEFINED buildConfiguration (
           ECHO Error: buildConfiguration variable is not set
           EXIT /B 1
         )
       displayName: 'Validate Variables'
    

    Remarque : il s’agit d’une validation simple pour vérifier si la variable est définie. Si les variables ne sont pas définies, le script échouera et le pipeline s’arrêtera. Vous pouvez ajouter une validation plus complexe pour vérifier la valeur de la variable ou si elle est définie sur une valeur spécifique.

  4. Cliquez sur Valider et enregistrer pour enregistrer les modifications, puis cliquez sur Enregistrer.

  5. Ouvrez l’exécution de pipeline eshoponweb-ci. Il s’exécute correctement, car la variable buildConfiguration est définie dans le groupe de variables.

  6. Pour tester la validation, supprimez la variable buildConfiguration du groupe de variables ou renommez la variable, puis réexécutez le pipeline. Il doit échouer avec l’erreur suivante :

     Error: buildConfiguration variable is not set   
    

    Capture d’écran de l’exécution du pipeline avec échec de la validation.

  7. Ajoutez la variable buildConfiguration au groupe de variables et réexécutez le pipeline. Cette opération doit s’exécuter avec succès.

[!IMPORTANT] N’oubliez pas de supprimer les ressources créées dans le portail Azure pour éviter les frais inutiles.

Révision

Dans ce labo, vous avez appris comment configurer des pipelines pour utiliser de manière sécurisée des variables et des paramètres.