Tutoriel : Intégration continue de modèles ARM avec Azure Pipelines

Dans le tutoriel précédent, vous avez déployé un modèle lié. Dans ce tutoriel, vous allez apprendre à utiliser Azure Pipelines pour générer et déployer en continu des projets de modèle Azure Resource Manager (modèle ARM).

Azure DevOps fournit des services de développement pour prendre en charge les équipes afin de planifier le travail, collaborer sur le développement de code, mais aussi générer et déployer des applications. Les développeurs peuvent travailler dans le cloud à l’aide d’Azure DevOps Services. Azure DevOps fournit un ensemble de fonctionnalités auxquelles vous pouvez accéder via votre navigateur web ou un client IDE. Azure Pipelines est une de ces fonctionnalités. Azure Pipelines est un service complet d’intégration et de diffusion en continu. Il fonctionne avec votre fournisseur Git par défaut et peut être déployé sur la plupart des services cloud majeurs. Une fois déployé, il vous permet d’automatiser la génération, le test et le déploiement de votre code pour Microsoft Azure, Google Cloud Platform, ou Amazon Web Services.

Notes

Sélectionnez un nom de projet. Lorsque vous parcourez le didacticiel, remplacez chaque occurrence de ARMPipelineProj par le nom de votre projet. Ce nom de projet est utilisé pour générer des noms de ressource. L’une des ressources est un compte de stockage. Ce nom doit comprendre entre 3 et 24 caractères, uniquement des lettres en minuscules et des nombres. Le nom doit être unique. Dans le modèle, le nom du compte de stockage est le nom du projet auquel store est ajouté, et le nom du projet doit comprendre entre 3 et 11 caractères. Le nom du projet doit donc respecter les exigences du nom du compte de stockage et comporter moins de 11 caractères.

Ce tutoriel décrit les tâches suivantes :

  • Préparer un dépôt GitHub
  • Créer un projet Azure DevOps
  • Créer un pipeline Azure
  • Vérifier le déploiement du pipeline
  • Mettre à jour le modèle et le redéployer
  • Nettoyer les ressources

Si vous ne disposez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Prérequis

Pour effectuer ce qui est décrit dans cet article, vous avez besoin des éléments suivants :

Préparer un dépôt GitHub

GitHub est utilisé pour stocker le code source de votre projet, y compris les modèles Resource Manager. Pour connaître les autres référentiels pris en charge, veuillez consulter Référentiels pris en charge par Azure DevOps.

Créer un référentiel GitHub

Si vous n’avez pas de compte GitHub, consultez Prérequis.

  1. Connectez-vous à GitHub.

  2. Sélectionnez votre image de compte dans le coin supérieur droit, puis vos référentiels.

    Screenshot of creating a GitHub repository for Azure Resource Manager Azure DevOps Azure Pipelines.

  3. Sélectionnez le bouton vert New (Nouveau).

  4. Dans Repository name (nom du référentiel), entrez un nom de référentiel. ARMPipeline-repo par exemple. N’oubliez pas de remplacer chaque occurrence de ARMPipeline par le nom de votre projet. Vous pouvez sélectionner Public ou Private (Privé) pour ce didacticiel. Puis sélectionnez Create repository (Créer un référentiel).

  5. Notez l’URL. L’URL du dépôt est au format suivant : https://github.com/[YourAccountName]/[YourRepositoryName] .

Ce référentiel est appelé remote repository (référentiel distant). Chaque développeur du même projet peut cloner son dépôt local, puis fusionner ses modifications dans le dépôt distant.

Cloner le référentiel distant

  1. Ouvrez Git Shell ou Git Bash. Consultez les Conditions préalables.

  2. Vérifiez que votre dossier actif est GitHub.

  3. Exécutez la commande suivante :

    git clone https://github.com/[YourAccountName]/[YourGitHubRepositoryName]
    cd [YourGitHubRepositoryName]
    mkdir create_web_app
    cd create_web_app
    pwd
    

    Remplacez [YourAccountName] (NomDeVotreCompte) par le nom de votre compte GitHub, puis remplacez [YourGitHubRepositoryName] (NomDeVotreRéférentielGitHub) par le nom de du référentiel que vous avez créé lors de la procédure précédente.

Le modèle est stocké dans le dossier create_web_app. La commande pwd affiche le chemin d’accès au dossier. C’est dans ce chemin d’accès que vous enregistrerez le modèle lors de la procédure suivante.

Télécharger un modèle de démarrage rapide

Au lieu de créer les modèles, vous pouvez les télécharger et les enregistrer dans le dossier create_web_app.

Le nom du dossier et les noms des fichiers sont utilisés tels quels dans le pipeline. Si vous modifiez ces noms, vous devez mettre à jour les noms utilisés dans le pipeline.

Transmettre le modèle vers le référentiel distant

Le fichier azuredeploy.json a été ajouté au dépôt local. Ensuite, vous chargez le modèle dans le référentiel distant.

  1. Si ce n’est pas déjà fait, ouvrez Git Shell ou Git Bash.

  2. Changez de répertoire pour passer au dossier create_web_app dans votre dépôt local.

  3. Vérifiez que le fichier azuredeploy.json se trouve dans le dossier.

  4. Exécutez la commande suivante :

    git add .
    git commit -m "Add web app templates."
    git push origin main
    

    Vous pouvez obtenir un avertissement sur LF. Vous pouvez ignorer cet avertissement. main est la branche primaire. Généralement, il faut créer une branche pour chaque mise à jour. Pour simplifier ce tutoriel, nous utilisons directement la branche primaire.

  5. Accédez à votre référentiel GitHub à partir d’un navigateur. L’URL est https://github.com/[YourAccountName]/[YourGitHubRepository]. Vous devez voir le dossier create_web_app et les deux fichiers à l’intérieur du dossier.

  6. Cliquez sur azuredeploy.json pour ouvrir le modèle.

  7. Sélectionnez le bouton Raw. L’URL commence par https://raw.githubusercontent.com.

  8. Copiez l’URL. Vous devrez fournir cette valeur lors de la configuration du pipeline ultérieurement dans le tutoriel.

Pour le moment, vous avez créé un dépôt GitHub et chargé les modèles sur le dépôt.

Créer un projet DevOps

Une organisation DevOps est nécessaire avant de procéder à la procédure suivante. Si vous n’en avez pas, consultez Prérequis.

  1. Connectez-vous à Azure DevOps.

  2. Sélectionnez une organisation DevOps à gauche, puis Nouveau projet. Si aucun projet ne s’affiche, la page Create project (Créer un projet) s’ouvre automatiquement.

  3. Saisissez les valeurs suivantes :

    Screenshot of creating an Azure DevOps project for Azure Resource Manager Azure DevOps Azure Pipelines.

    • Nom du projet : entrez un nom de projet. Vous pouvez utiliser le nom du projet que vous avez choisi au tout début du didacticiel.
    • Visibilité : sélectionnez Privé.

    Utilisez les valeurs par défaut pour les autres propriétés.

  4. Sélectionnez Create (Créer).

Pour créer une connexion de service qui servira à déployer des projets vers Azure :

  1. En bas du menu situé à gauche, sélectionnez Project settings (Paramètres du projet).

  2. Sous Pipelines, sélectionnez Service connections (Connexions au service).

  3. Sélectionnez Créer une connexion de service, Azure Resource Manager, puis Suivant.

  4. Sélectionnez Principal du service (automatique), puis Suivant.

  5. Saisissez les valeurs suivantes :

    • Scope level (Niveau d’étendue) : sélectionnez Subscription (Abonnement).
    • Subscription (Abonnement) : sélectionnez votre abonnement.
    • Groupe de ressources : Laissez cette valeur vide.
    • Connection name (Nom de la connexion) : nommez la connexion. ARMPipeline-conn par exemple. Notez ce nom : vous en aurez besoin lors de la création de votre pipeline.
    • Accorder une autorisation d’accès à tous les pipelines. (sélectionné)
  6. Sélectionnez Enregistrer.

Créer un pipeline

Pour le moment, vous avez mené à bien les tâches suivantes : Si vous avez ignoré les sections précédentes, car vous êtes familiarisé avec GitHub et DevOps, vous devez effectuer ces tâches avant de continuer.

  • Création d’un dépôt GitHub, puis enregistrement des modèles dans le dossier create_web_app du dépôt.
  • Création d’un projet DevOps et création d’une connexion au service Azure Resource Manager.

Pour créer un pipeline avec une étape pour déployer un modèle :

  1. Dans le menu situé à gauche, sélectionnez Pipelines.

  2. Sélectionnez Créer un pipeline.

  3. Sous l’onglet Connect (Connexion), sélectionnez GitHub. Si le système vous y invite, entrez vos informations d’identification de GitHub, puis suivez les instructions. Si vous voyez l’écran suivant, sélectionnez Only select repositories (Sélectionner uniquement les référentiels), puis vérifiez que votre référentiel se trouve dans la liste avant de sélectionner Approve & Install (Valider et installer).

    Screenshot of selecting repositories for Azure Resource Manager Azure DevOps Azure Pipelines.

  4. Sous l’onglet Select (Sélection), sélectionnez votre référentiel. Le nom par défaut est [YourAccountName]/[YourGitHubRepositoryName].

  5. Sous l’onglet Configure (Configuration), sélectionnez Starter pipeline (Pipeline de démarrage). Il indique le fichier de pipeline azure-pipelines.yml avec deux étapes de script.

  6. Supprimez les deux étapes de script du fichier .yml.

  7. Placez le curseur sur la ligne après steps : .

  8. Sélectionnez Afficher l’Assistant à droite de l’écran pour ouvrir le volet Tâches.

  9. Sélectionnez Déploiement de modèle ARM.

  10. Saisissez les valeurs suivantes :

    • deploymentScope : sélectionnez Groupe de ressources. Pour en savoir plus sur les étendues, consultez Étendues de déploiement.
    • Connexion Azure Resource Manager : sélectionnez le nom de connexion de service que vous avez créé précédemment.
    • Abonnement : spécifiez l’ID de l’abonnement cible.
    • Action : sélectionnez l’action Créer ou mettre à jour un groupe de ressources qui effectue 2 actions : d’abord, il crée un groupe de ressources si un nouveau nom de groupe de ressources est fourni. Ensuite, il déploie le modèle spécifié.
    • Groupe de ressources : Entrez un nouveau nom de groupe de ressources. ARMPipeline-rg par exemple.
    • Emplacement : sélectionnez un emplacement pour le groupe de ressources, par exemple USA Centre.
    • Emplacement du modèle: sélectionnez l’URL du fichier, ce qui signifie que la tâche recherche le fichier du modèle à l’aide de l’URL. Dans la mesure où relativePath est utilisé dans le modèle principal et n’est pris en charge que sur les déploiements basés sur un URI, vous devez utiliser l’URL ici.
    • Lien du modèle: entrez l’URL que vous avez obtenue à la fin de la section Préparer un dépôt GitHub. Elle commence par https://raw.githubusercontent.com .
    • Lien des paramètres du modèle : laissez ce champ vide. Vous allez spécifier la valeur des paramètres dans Remplacer les paramètres du modèle.
    • Remplacer les paramètres du modèle : entrez -projectName [EnterAProjectName] .
    • Mode de déploiement : sélectionnez Incrémentiel.
    • Nom du déploiement : entrez DeployPipelineTemplate. Sélectionnez Avancé pour pouvoir voir Nom du déploiement.

    Screenshot of the ARM template deployment page with required values entered for Azure DevOps Azure Pipelines.

  11. Sélectionnez Ajouter.

    Pour plus d’informations sur la tâche, consultez Tâche Déploiement de groupe de ressources Azure et Tâche Déploiement de modèle Azure Resource Manager

    Le fichier .yml doit ressembler à ce qui suit :

    Screenshot of the Review page with the new pipeline titled Review your pipeline YAML for Azure DevOps Azure Pipelines.

  12. Sélectionnez Enregistrer et exécuter.

  13. Dans le volet Enregistrer et exécuter, sélectionnez une nouvelle fois Enregistrer et exécuter. Une copie du fichier YAML est enregistrée dans le référentiel connecté. Vous pouvez voir le fichier YAML en accédant à votre référentiel.

  14. Vérifiez que le pipeline est exécuté avec succès.

    Screenshot of Azure Resource Manager Azure DevOps Azure Pipelines YAML file.

Vérifier le déploiement

  1. Connectez-vous au portail Azure.
  2. Ouvrez le groupe de ressources. Son nom correspond à ce que vous avez spécifié dans le fichier YAML du pipeline. Vous devriez voir un compte de stockage créé. Le nom du compte de stockage commence par store (stocker).
  3. Sélectionnez le nom du compte de stockage pour l’ouvrir.
  4. Sélectionner Propriétés. Notez que le paramètre Réplication a pour valeur Stockage localement redondant (LRS) .

Mettre à jour et redéployer

Lorsque vous mettez à jour le modèle et transmettez les modifications dans le référentiel distant, le pipeline met automatiquement à jour les ressources (ici, il s’agit du compte de stockage).

  1. Ouvrez linkedStorageAccount.json à partir de votre dépôt local dans Visual Studio Code ou dans n’importe quel éditeur de texte.

  2. Mettez à jour le defaultValue de storageAccountType sur Standard_GRS. Voir la capture d’écran suivante :

    Screenshot of updating the YAML file for Azure Resource Manager Azure DevOps Azure Pipelines.

  3. Enregistrez les modifications.

  4. Transmettez les modifications vers le référentiel distant en exécutant les commandes suivantes à partir de Git Bash/Shell.

    git pull origin main
    git add .
    git commit -m "Update the storage account type."
    git push origin main
    

    La première commande (pull) synchronise le dépôt local avec le dépôt distant. Le fichier YAML du pipeline a été ajouté uniquement au dépôt distant. L’exécution de la commande pull télécharge une copie du fichier YAML sur la branche locale.

    La quatrième commande (push) charge le fichier linkedStorageAccount.json révisé sur le dépôt distant. Une fois la branche primaire du dépôt distant mise à jour, le pipeline est redéclenché.

Pour vérifier les modifications, vous pouvez examiner la propriété Réplication du compte de stockage. Veuillez consulter la section Vérifier le déploiement.

Nettoyer les ressources

Lorsque vous n’en avez plus besoin, nettoyez les ressources Azure que vous avez déployées en supprimant le groupe de ressources.

  1. Dans le portail Azure, sélectionnez Groupe de ressources dans le menu de gauche.
  2. Entrez le nom du groupe de ressources dans le champ Filtrer par nom.
  3. Sélectionnez le nom du groupe de ressources.
  4. Sélectionnez Supprimer le groupe de ressources dans le menu supérieur.

Nous vous recommandons également de supprimer le référentiel GitHub et le projet Azure DevOps.

Étapes suivantes

Félicitations, vous avez terminé ce tutoriel de déploiement de modèle Resource Manager. Faites-nous part de vos réflexions et de vos suggestions dans la section des commentaires. Merci ! Vous êtes prêt à passer à des concepts plus élaborés sur les modèles. Le tutoriel suivant détaille l’utilisation de la documentation de référence sur les modèles, afin de vous aider à définir les ressources à déployer.