Exercice - Ajouter une phase de prévisualisation à votre pipeline
Vous voulez ajouter une phase supplémentaire à votre pipeline afin de pouvoir vérifier les modifications qui seront apportées à votre environnement Azure.
Pendant ce processus, vous allez :
- Mettre à jour le fichier YAML du pipeline en y ajoutant une nouvelle phase de prévisualisation.
- Ajouter un environnement à Azure Pipelines.
- Configurer l’environnement pour exiger une approbation.
- Mettre à jour le fichier YAML du pipeline afin d’utiliser l’environnement pour la phase de déploiement.
- Visualiser les résultats de la simulation et approuver l’exécution d’un pipeline.
Mettre à jour la définition du pipeline en y ajoutant une phase de prévisualisation
Ici, vous ajoutez une nouvelle phase à votre pipeline qui exécute l’opération de simulation.
Dans Visual Studio Code, ouvrez le fichier azure-pipelines.yml dans le dossier deploy.
Entre les phases Validation et Déploiement, ajoutez la définition suivante pour la phase Prévisualisation :
- stage: Preview jobs: - job: PreviewAzureChanges displayName: Preview Azure changes steps: - task: AzureCLI@2 name: RunWhatIf displayName: Run what-if inputs: azureSubscription: $(ServiceConnectionName) scriptType: 'bash' scriptLocation: 'inlineScript' inlineScript: | az deployment group what-if \ --resource-group $(ResourceGroupName) \ --template-file deploy/main.bicep \ --parameters environmentType=$(EnvironmentType)
Enregistrez les modifications apportées au fichier.
Ajouter un environnement
Dans votre navigateur, accédez à Pipelines>Environnements.
Sélectionnez Créer un environnement.
Entrez Website comme nom d’environnement.
Laissez la description vide. Dans Ressource, sélectionnez Aucune.
Notes
Dans Azure Pipelines, les environnements sont utilisés pour activer les fonctionnalités de déploiement. Certaines de ces fonctionnalités s’appliquent seulement quand vous effectuez un déploiement sur Kubernetes ou sur des machines virtuelles. Dans ce module, nous n’utilisons pas ces fonctionnalités et vous pouvez les ignorer.
Sélectionnez Créer.
Ajouter une vérification d’approbation au pipeline
Sélectionnez l’onglet Approbations et vérifications dans la partie supérieure gauche de l’écran.
Sélectionnez Approbations.
Dans la zone de texte Approbateurs, tapez votre nom et sélectionnez-vous.
Sélectionnez le bouton avec la flèche en regard de Avancé.
Notez que, par défaut, les approbateurs sont autorisés à approuver les exécutions qu’ils ont déclenchées. Comme vous êtes la seule personne qui va utiliser ce pipeline, laissez cette case cochée.
Sélectionnez Créer.
Mettre à jour la définition du pipeline pour exiger un environnement et une approbation
Ici, vous configurez la phase Deploy pour qu’elle s’exécute sur l’environnement Website que vous avez créé précédemment. Vous convertissez la phase Deploy pour exécuter un travail de déploiement au lieu d’un travail standard, puis vous la configurez pour un déploiement sur l’environnement.
Dans Visual Studio Code, dans le fichier azure-pipelines.yml, remplacez la définition de la phase Deploy par ce code :
- stage: Deploy jobs: - deployment: DeployWebsite displayName: Deploy website environment: Website strategy: runOnce: deploy: steps: - checkout: self - task: AzureResourceManagerTemplateDeployment@3 name: DeployBicepFile displayName: Deploy Bicep file inputs: connectedServiceName: $(ServiceConnectionName) deploymentName: $(Build.BuildNumber) location: $(deploymentDefaultLocation) resourceGroupName: $(ResourceGroupName) csmFile: deploy/main.bicep overrideParameters: > -environmentType $(EnvironmentType)
Notez que vous définissez une nouvelle étape
checkout
. Contrairement aux travaux normaux, les travaux de déploiement doivent être configurés pour extraire (télécharger) les fichiers depuis votre dépôt Git. Si vous n’effectuez pas cette étape, le travail de déploiement ne pourra pas lire votre fichier Bicep. À la place, vous pouvez envisager d’utiliser des artefacts de pipeline pour envoyer des fichiers entre des phases de pipeline. Vous trouverez des liens vers des informations supplémentaires sur les artefacts dans le récapitulatif.Enregistrez le fichier .
Vérifier et commiter votre définition de pipeline
Vérifiez que votre fichier azure-pipelines.yml est similaire au code ci-dessous :
trigger: batch: true branches: include: - main pool: vmImage: ubuntu-latest variables: - name: deploymentDefaultLocation value: westus3 stages: - stage: Lint jobs: - job: LintCode displayName: Lint code steps: - script: | az bicep build --file deploy/main.bicep name: LintBicepCode displayName: Run Bicep linter - stage: Validate jobs: - job: ValidateBicepCode displayName: Validate Bicep code steps: - task: AzureResourceManagerTemplateDeployment@3 name: RunPreflightValidation displayName: Run preflight validation inputs: connectedServiceName: $(ServiceConnectionName) location: $(deploymentDefaultLocation) deploymentMode: Validation resourceGroupName: $(ResourceGroupName) csmFile: deploy/main.bicep overrideParameters: > -environmentType $(EnvironmentType) - stage: Preview jobs: - job: PreviewAzureChanges displayName: Preview Azure changes steps: - task: AzureCLI@2 name: RunWhatIf displayName: Run what-if inputs: azureSubscription: $(ServiceConnectionName) scriptType: 'bash' scriptLocation: 'inlineScript' inlineScript: | az deployment group what-if \ --resource-group $(ResourceGroupName) \ --template-file deploy/main.bicep \ --parameters environmentType=$(EnvironmentType) - stage: Deploy jobs: - deployment: DeployWebsite displayName: Deploy website environment: Website strategy: runOnce: deploy: steps: - checkout: self - task: AzureResourceManagerTemplateDeployment@3 name: DeployBicepFile displayName: Deploy Bicep file inputs: connectedServiceName: $(ServiceConnectionName) deploymentName: $(Build.BuildNumber) location: $(deploymentDefaultLocation) resourceGroupName: $(ResourceGroupName) csmFile: deploy/main.bicep overrideParameters: > -environmentType $(EnvironmentType)
Si ce n’est pas le cas, faites-le correspondre à cet exemple, puis enregistrez-le.
Commitez et poussez (push) vos modifications à votre dépôt Git en exécutant les commandes suivantes dans le terminal Visual Studio Code :
git add . git commit -m "Add preview stage" git push
Exécuter le pipeline et passer en revue les résultats de la simulation
Dans votre navigateur, accédez à votre pipeline.
Sélectionnez l’exécution la plus récente de votre pipeline.
Attendez que le pipeline termine les étapes Vérification lint, Validation et Prévisualisation. Azure Pipelines met automatiquement à jour la page avec l’état le plus récent, mais il est toutefois conseillé d’actualiser régulièrement cette page.
Si vous êtes invité à accorder l’autorisation d’accéder à une ressource, sélectionnez Afficher, puis Autoriser.
Notez qu’Azure Pipelines vous demande une approbation. Vous recevez également un e-mail vous informant que le pipeline a besoin de votre approbation.
Avant d’approuver la poursuite du pipeline, vous allez passer en revue les résultats de la simulation pour vérifier qu’ils correspondent à vos attentes.
Sélectionnez la phase Prévisualisation.
Sélectionnez l’étape Exécuter la simulation pour examiner les modifications signalées par la commande de simulation.
Notez que le journal du pipeline fournit des résultats de simulation similaires au code suivant :
Resource and property changes are indicated with these symbols: + Create ~ Modify = Nochange The deployment will update the following scope: Scope: /subscriptions/f0750bbe-ea75-4ae5-b24d-a92ca601da2c/resourceGroups/ToyWebsiteTest ~ Microsoft.Web/sites/toy-website-nbfnedv766snk [2021-01-15] + properties.siteConfig.localMySqlEnabled: false + properties.siteConfig.netFrameworkVersion: "v4.6" = Microsoft.Insights/components/toywebsite [2020-02-02] = Microsoft.Storage/storageAccounts/mystoragenbfnedv766snk [2021-04-01] = Microsoft.Web/serverfarms/toy-website [2021-01-15] Resource changes: 1 to modify, 3 no change.
L’opération de simulation a détecté une modification de la ressource de site web. Cependant, les modifications qu’elle a détectées sont du bruit. Elles ne représentent pas de véritables changements de votre ressource. L’équipe Azure travaille à réduire progressivement le bruit. En attendant, pour ces deux propriétés spécifiques, vous pouvez ignorer les modifications détectées.
Vous pouvez aussi voir un élément dans le résultat de la simulation pour le type de ressource
microsoft.alertsmanagement/smartDetectorAlertRules/Failure Anomalies - toywebsite
. Application Insights crée cette ressource automatiquement. La commande de simulation détecte qu’aucune modification n’est apportée à la ressource.
Approuver l’exécution du pipeline
Sélectionnez la flèche gauche pour revenir aux détails de l’exécution du pipeline.
Sélectionnez le bouton Passer en revue dans le panneau d’approbation.
Dans la zone Commentaire, entrez Reviewed what-if results (Résultats de la simulation vérifiés).
Sélectionnez Approuver.
Observer le déploiement réussi
Une fois que vous avez approuvé l’exécution du pipeline, vous voyez que la phase Deploy commence à s’exécuter.
Attendez que la phase se termine.
Notez que l’exécution du pipeline s’est terminée avec succès.