Exercice - Configurer votre environnement Azure DevOps

Effectué

Dans cette unité, vous vérifiez que votre organisation Azure DevOps est configurée pour effectuer les étapes restantes de ce module. Vous créez également les environnements Azure App Service dans lesquels vous effectuerez des déploiements.

Pour atteindre ces objectifs, vous effectuez ces tâches :

  • Ajoutez un utilisateur pour vous assurer qu’Azure DevOps peut se connecter à votre abonnement Azure.
  • Configurez un projet Azure DevOps pour ce module.
  • Dans Azure Boards, déplacer l’élément de travail de ce module dans la colonne En cours d’exécution.
  • Vérifier que votre projet est configuré localement pour pouvoir pousser les modifications vers le pipeline.
  • Créez l’application Azure App Service et Azure Functions à l’aide d’Azure CLI dans Azure Cloud Shell.
  • Créez des variables de pipeline qui définissent les noms de votre instance App Service et Azure Functions.
  • Créez une connexion de service qui permet à Azure Pipelines d’accéder en toute sécurité à votre abonnement Azure.

Ajouter un utilisateur à Azure DevOps

Pour effectuer ce module, vous avez besoin de votre propre abonnement Azure. Vous pouvez commencer gratuitement avec Azure.

Vous n’avez pas besoin d’abonnement Azure pour utiliser Azure DevOps. Toutefois, cet exercice utilise Azure DevOps pour effectuer un déploiement dans des ressources de votre abonnement Azure. Pour simplifier le processus, utilisez le même compte Microsoft pour vous connecter à votre abonnement Azure et à votre organisation Azure DevOps.

Important

Si vous vous connectez avec différents comptes, ajoutez un utilisateur à votre organisation DevOps sous le compte Microsoft que vous utilisez pour vous connecter à Azure. Pour plus d’informations, consultez Ajouter des utilisateurs à votre organisation ou projet. Lorsque vous ajoutez l’utilisateur, choisissez le niveau d’accès de base .

Ensuite, déconnectez-vous d’Azure DevOps et connectez-vous avec le nouveau compte d’utilisateur. Utilisez le compte Microsoft que vous utilisez pour vous connecter à votre abonnement Azure.

Obtenir le projet Azure DevOps

Vérifiez que votre organisation Azure DevOps est configurée pour effectuer les étapes restantes de ce module. Pour cela, exécutez un modèle qui crée un projet dans Azure DevOps.

Les modules de ce parcours d’apprentissage constituent une progression lorsque vous suivez l’équipe web Tailspin tout au long de leur parcours DevOps. À des fins d’apprentissage, chaque module a son propre projet Azure DevOps.

Exécuter le modèle

Exécutez un modèle qui configure votre organisation Azure DevOps.

Important

Le générateur de démonstration Azure DevOps n’est plus pris en charge, mais vous pouvez toujours l’utiliser pour créer des environnements de démonstration. Il n’y a actuellement aucun remplacement, et ses fonctionnalités ou sa disponibilité peuvent changer dans le futur.

  1. Obtenez et exécutez le projet ADOGenerator dans Visual Studio ou l’IDE de votre choix.

  2. Lorsque vous êtes invité à entrer le numéro de modèle dans la liste des modèles, entrez 38 pour automatiser les déploiements de fonction Azure avec Azure Pipelines, puis appuyez sur Entrée.

  3. Choisissez votre méthode d’authentification. Vous pouvez configurer et utiliser un jeton d’accès personnel (PAT) ou utiliser la connexion de l’appareil.

    Remarque

    Si vous configurez un PAT, veillez à autoriser les scopes nécessaires. Pour ce module, vous pouvez utiliser l’accès complet, mais dans une situation réelle, vous devez accorder uniquement les étendues nécessaires.

  4. Entrez le nom de votre organisation Azure DevOps, puis appuyez sur Entrée.

  5. Si vous y êtes invité, entrez votre PAT Azure DevOps, puis appuyez sur Entrée.

  6. Entrez un nom de projet tel que Space Game - web - Azure Functions, puis appuyez sur Entrée.

  7. Une fois votre projet créé, accédez à votre organisation Azure DevOps dans votre navigateur (à https://dev.azure.com/<your-organization-name>/) et sélectionnez le projet.

Dupliquer (fork) le référentiel

Si ce n’est déjà fait, créez une duplication du dépôt mslearn-tailspin-spacegame-web-azure-functions.

  1. Sur GitHub, accédez au dépôt mslearn-tailspin-spacegame-web-azure-functions .

  2. Sélectionnez Fork en haut à droite de l’écran.

  3. Choisissez votre compte GitHub en tant que propriétaire, puis sélectionnez Créer un fork.

Important

La page Nettoyer votre environnement Azure DevOps dans ce module contient des étapes importantes que vous devez suivre, même si vous ne terminez pas ce module. Le nettoyage vous aide à garantir que vous ne manquez pas de minutes de construction gratuites.

Définir la visibilité de votre projet

Initialement, votre duplication (fork) du référentiel Space Game sur GitHub est définie sur public, et le projet créé par le modèle Azure DevOps sur privé. Un référentiel public sur GitHub est accessible à tout le monde, tandis qu’un référentiel privé n’est accessible qu’à vous et aux personnes avec lesquelles vous choisissez de le partager. De même, sur Azure DevOps, les projets publics fournissent un accès en lecture seule aux utilisateurs non authentifiés ; dans les projets privés à l’inverse, les utilisateurs doivent se voir accorder un accès et une authentification pour pouvoir accéder aux services.

Il n’est pour le moment pas nécessaire de modifier ces paramètres pour les besoins de ce module. Dans le cadre de vos projets personnels toutefois, vous devez déterminer la visibilité et l’accès que vous souhaitez accorder aux autres. Par exemple, si votre projet est open source, vous pouvez décider de rendre publics votre référentiel GitHub et votre projet Azure DevOps. S’il s’agit au contraire d’un projet privé, il sera pertinent de définir votre référentiel GitHub et votre projet Azure DevOps comme privés.

Vous trouverez peut-être les ressources suivantes utiles par la suite pour déterminer la solution la mieux adaptée à votre projet :

Attribuer un élément de travail et le déplacer à l’état En cours

Ici, vous vous attribuez un élément de travail sur Azure Boards, et vous définissez l’état de l’élément de travail sur En cours. Dans la pratique, vous et votre équipe créez des éléments de travail au début de chaque sprint ou itération de travail.

Cet exercice crée une liste de contrôle à partir de laquelle travailler. Il donne à d’autres membres de l’équipe une visibilité sur ce que vous travaillez et sur la quantité de travail restante. L’élément de travail permet également d’appliquer des limites de travail en cours (WIP) afin que l’équipe ne prenne pas trop de travail à la fois.

  1. Dans Azure DevOps, accédez à la catégorie Boards , puis sélectionnez Boards dans le menu.

    Azure DevOps montrant l’emplacement du menu Boards.

  2. Ouvrez l’API du tableau de bord de refactorisation en tant qu’élément de travail Azure Function en sélectionnant le titre. Affectez cet élément de travail à vous-même, puis sélectionnez Enregistrer &Fermer.

  3. Sélectionnez la flèche vers le bas en bas de la carte, puis sélectionnez Faireou sélectionnez la carte, puis faites-la glisser vers la colonne Faire.

    Capture d’écran de la carte d’élément de travail mettant en évidence l’emplacement de la flèche vers le bas.

  4. L’élément de travail est déplacé de la colonne To Do vers la colonne Doing .

    Capture d’écran d’Azure Boards mettant en évidence la carte d’élément de travail dans la colonne Doing.

À la fin de ce module, déplacez la carte vers la colonne Terminé une fois la tâche effectuée.

Créer les environnements Azure App Service et Azure Functions

Ici, vous allez créer l’application App Service et Azure Functions nécessaire au déploiement de la nouvelle version du site et de l’API.

Dans ce module, vous utilisez Azure CLI pour afficher une instance App Service. Vous pouvez accéder à Azure CLI à partir d’un terminal ou via Visual Studio Code. Utilisation d’Azure CLI à partir d’Azure Cloud Shell. Cette expérience d’interpréteur de commandes sur navigateur est hébergée dans le cloud. Dans Cloud Shell, Azure CLI est configurée pour être utilisée avec votre abonnement Azure.

Important

Vous avez besoin de votre propre abonnement Azure pour effectuer les exercices de ce module.

Afficher Cloud Shell via le portail Azure

  1. Connectez-vous au portail Azure.

  2. Dans les contrôles globaux dans l’en-tête de page, sélectionnez Cloud Shell.

    Capture d’écran du portail Azure montrant l’emplacement de l’élément de menu Cloud Shell.

    Un terminal s’ouvre et se connecte à Azure Cloud Shell.

  3. Si nécessaire, sélectionnez Bash dans le menu terminal.

    Remarque

    Pour conserver les fichiers que vous créez dans Cloud Shell, vous devez disposer d’une ressource de stockage Azure. Quand vous ouvrez Cloud Shell pour la première fois, vous êtes invité à créer un groupe de ressources, un compte de stockage et un partage Azure Files. Cette configuration est automatiquement utilisée pour toutes les futures sessions Cloud Shell.

Sélectionner une région Azure

Une région est un ou plusieurs centres de données Azure dans un emplacement géographique. USA Est, USA Ouest et Europe Nord sont des exemples de régions. Chaque ressource Azure, y compris une instance App Service, est affectée à une région.

Pour faciliter l’exécution des commandes, commencez par définir une région par défaut. Après avoir spécifié la région par défaut, les commandes que vous entrez utilisent cette région jusqu’à ce que vous spécifiiez une autre région.

  1. À partir de Cloud Shell, exécutez la commande suivante az account list-locations pour répertorier les régions disponibles à partir de votre abonnement Azure :

    az account list-locations \
      --query "[].{Name: name, DisplayName: displayName}" \
      --output table
    
  2. Dans la colonne Name de la sortie, choisissez une région proche de vous. Par exemple, choisissez eastasia ou westus2.

  3. Exécutez az configure pour définir votre région par défaut. Remplacez <REGION> par le nom de la région que vous avez choisie.

    az configure --defaults location=<REGION>
    

    Dans cet exemple, westus2 est défini comme région par défaut :

    az configure --defaults location=westus2
    

Créer des variables Bash

Ici, vous allez créer des variables Bash pour rendre le processus de configuration plus pratique et moins sujet aux erreurs. L’utilisation de variables pour les chaînes de texte partagées permet d’éviter les fautes de frappe accidentelles.

  1. À partir de Cloud Shell, générez un nombre aléatoire que vous utiliserez pour créer des noms globaux uniques pour certains services à l’étape suivante.

    resourceSuffix=$RANDOM
    
  2. Créez trois noms globaux uniques pour vos comptes App Service, Azure Function et stockage. Ces commandes utilisent des guillemets doubles, ce qui indique à Bash de résoudre les variables à l’aide de la syntaxe inline.

    webName="tailspin-space-game-web-${resourceSuffix}"
    leaderboardName="tailspin-space-game-leaderboard-${resourceSuffix}"
    storageName="tailspinspacegame${resourceSuffix}"
    
  3. Créez deux variables Bash supplémentaires pour stocker les noms de votre groupe de ressources et plan de service.

    rgName='tailspin-space-game-rg'
    planName='tailspin-space-game-asp'
    

Créer les ressources Azure requises

Votre solution nécessite plusieurs ressources Azure pour le déploiement. C’est ce que vous allez créer maintenant.

Remarque

Cet exercice utilise les paramètres réseau par défaut, afin que votre site soit accessible à partir d’Internet. Dans la pratique, vous pouvez configurer un réseau virtuel Azure pour placer votre site web dans un réseau auquel vous et votre équipe pouvez accéder. Plus tard, vous pouvez reconfigurer votre réseau virtuel pour rendre le site web accessible à vos utilisateurs.

  1. Exécutez la commande suivante az group create pour créer un groupe de ressources à l’aide du nom défini précédemment :

    az group create --name $rgName
    
  2. Exécutez la commande suivante az appservice plan create pour créer un plan App Service à l’aide du nom défini dans la tâche précédente :

    az appservice plan create \
      --name $planName \
      --resource-group $rgName \
      --sku B1 \
      --is-linux
    

    Le --sku paramètre spécifie le plan B1. Ce plan s’exécute sur le niveau De base. Le paramètre --is-linux spécifie les travailleurs Linux (threads utilisés pour les événements et la planification des tâches).

    Important

    Si la référence SKU B1 n’est pas disponible dans votre abonnement Azure, choisissez un autre plan, tel que S1 (Standard).

  3. Exécutez la commande suivante az webapp create pour créer l’instance App Service :

    az webapp create \
      --name $webName \
      --resource-group $rgName \
      --plan $planName \
      --runtime "DOTNETCORE|8.0"
    
  4. Azure Functions nécessite un compte de stockage pour le déploiement. Exécutez la commande suivante az storage account create pour la créer :

    az storage account create \
      --name $storageName \
      --resource-group $rgName \
      --sku Standard_LRS
    
  5. Exécutez la commande suivante az functionapp create pour créer l’instance d’application Azure Functions. Remplacez la <region> région par votre région préférée.

    az functionapp create \
      --name $leaderboardName \
      --resource-group $rgName \
      --storage-account $storageName \
      --functions-version 4 \
      --consumption-plan-location <region>
    
  6. Exécutez la commande suivante az webapp list pour répertorier le nom d’hôte et l’état de l’instance App Service :

    az webapp list \
      --resource-group $rgName \
      --query "[].{hostName: defaultHostName, state: state}" \
      --output table
    

    Notez le nom d’hôte de votre service en cours d’exécution. Il doit ressembler à ce qui suit, mais avec un autre nombre aléatoire. Vous avez besoin du nom d’hôte web au moment de vérifier votre travail.

    HostName                                        State
    ----------------------------------------------  -------
    tailspin-space-game-web-4692.azurewebsites.net  Running
    
  7. Exécutez la commande suivante az functionapp list pour répertorier le nom d’hôte et l’état de l’instance Azure Functions.

    az functionapp list \
      --resource-group $rgName \
      --query "[].{hostName: defaultHostName, state: state}" \
      --output table
    

    Notez le nom d’hôte de votre service en cours d’exécution. Il doit ressembler à ce qui suit, mais avec un autre identificateur de nombre aléatoire. Vous avez besoin du nom d’hôte du leaderboard au moment de vérifier votre travail.

    HostName                                                State
    ------------------------------------------------------  -------
    tailspin-space-game-leaderboard-4692.azurewebsites.net  Running
    
  8. Copiez ces deux noms d’hôtes dans un emplacement auquel vous pouvez facilement accéder ultérieurement.

  9. En guise d’étape facultative, ouvrez un navigateur et entrez un nom d’hôte pour vérifier qu’il est en cours d’exécution. La page d’accueil par défaut s’affiche.

Important

La page Nettoyer votre environnement Azure DevOps de ce module contient des étapes de nettoyage importantes. Le nettoyage vous permet de vous assurer que vous n’êtes pas facturé pour les ressources Azure une fois que vous avez terminé ce module. Veillez à effectuer les étapes de nettoyage même si vous n’allez pas au bout de ce module.

Créer des variables de pipeline dans Azure Pipelines

Ici, vous ajoutez une variable à votre pipeline qui stocke le nom de votre application web dans App Service. En outre, vous ajoutez le nom de votre application de classement pour l’instance Azure Functions.

Vous pouvez coder en dur ces noms dans votre configuration de pipeline, mais si vous les définissez en tant que variables, votre configuration est plus réutilisable. De plus, si les noms de vos instances changent, vous pouvez mettre à jour les variables et déclencher votre pipeline sans modifier votre configuration.

Ajoutez un groupe de variables à votre projet.

  1. Votre projet Space Game - web - Azure Functions doit être ouvert dans Azure DevOps.

  2. Dans le menu, sélectionnez Pipelines, puis, sous Pipelines , sélectionnez Bibliothèque. Le volet Bibliothèque s’affiche.

    Capture d’écran du menu Azure DevOps mettant en évidence l’option Bibliothèque sous Pipelines.

  3. Dans la barre de commandes ou au milieu du volet, sélectionnez Groupe de variables. La page Nouveau groupe de variables s’affiche.

  4. Pour le nom du groupe de variables, entrez Release.

  5. Sous Variables, sélectionnez Ajouter.

  6. Pour le nom de votre variable, entrez WebAppName. Pour la valeur, entrez le nom de l’instance App Service créée pour votre application web, par exemple tailspin-space-game-web-4692.

    Important

    Définissez le nom de l’instance App Service, et non son nom d’hôte complet. Dans cet exercice, par exemple, tailspin-space-game-web-4692 est la partie instance du nom d’hôte tailspin-space-game-web-4692.azurewebsites.net.

  7. Ajoutez une autre variable nommée LeaderboardAppName avec la valeur de votre instance de classement, par exemple tailspin-space-game-leaderboard-4692.

  8. Ajoutez une variable finale nommée ResourceGroupName avec la valeur tailspin-space-game-rg.

  9. Dans la barre de commandes située en haut de la page, sélectionnez Enregistrer pour enregistrer votre groupe de variables Release dans le pipeline.

    Les variables de votre groupe de variables doivent être similaires :

    Capture d’écran d’Azure Pipelines montrant le groupe de variables. Le groupe contient trois variables.

Créer l'environnement spike

Dans les modules précédents, vous avez créé des environnements pour les environnements de développement, de test et de préproduction . Ici, faites de même. Cette fois, créez un environnement nommé pic.

  1. Dans le menu Azure DevOps, sous Pipelines, sélectionnez Environnements.

    Capture d’écran d’Azure Pipelines montrant l’emplacement de l’option de menu Environnements.

  2. Sélectionnez Créer un environnement. Le volet Nouvel environnement s’affiche.

  3. Pour Nom, entrez spike.

  4. Laissez les champs restants à leurs valeurs par défaut.

  5. Cliquez sur Créer.

Créer une connexion de service

Ici, vous créez une connexion de service qui permet à Azure Pipelines d’accéder à votre abonnement Azure. Azure Pipelines utilise cette connexion de service pour déployer le site web sur App Service. Vous avez créé une connexion de service similaire dans le module précédent.

Important

Vérifiez que vous êtes connecté au portail Azure et à Azure DevOps sous le même compte Microsoft.

  1. Dans Azure DevOps, Space Game - web - Projet de pipeline Azure Functions, sous le menu, sélectionnez Paramètres du projet. Le volet Détails du projet s’affiche.

  2. Dans le menu, sous Pipelines, sélectionnez Connexions de service.

  3. Dans la page Connexions de service, sélectionnez Nouvelle connexion de service, puis, dans le volet Nouvelle connexion de service , sélectionnez Azure Resource Manager, puis Sélectionnez Suivant.

  4. Dans le volet Nouvelle connexion de service , sélectionnez Principal de service (automatique), puis Sélectionnez Suivant.

  5. Dans le volet Nouvelle connexion de service Azure , sélectionnez ou entrez les paramètres suivants :

    Champ Valeur
    Niveau de portée Abonnement
    Abonnement Sélectionnez votre abonnement Azure.
    Groupe de ressources tailspin-space-game-rg
    Nom de la connexion de service Resource Manager - Tailspin - Space Game

    Pendant le processus, vous pouvez être invité à vous connecter à votre compte Microsoft.

  6. Assurez-vous que l’option Accorder l’accès à tous les pipelines est sélectionnée.

  7. Cliquez sur Enregistrer.

Azure DevOps effectue une connexion de test pour vérifier qu’elle peut se connecter à votre abonnement Azure. Si Azure DevOps ne peut pas se connecter, vous avez la possibilité de vous connecter une deuxième fois.