Exercice – Création d’un pipeline de mise en production CD pour IoT Edge avec un test de détection de fumée

Effectué

Créer un pipeline de mise en production

Les déploiements sur les appareils doivent être effectués sous un contrôle strict dans les environnements de production. Pour cela, vous allez créer un pipeline de mise en production qui se déploie sur les appareils AQ et effectue le test de détection de fumée sur le runtime Edge d’un appareil conteneurisé. À cet effet, exécutez une instance de azure-iot-edge-device-container, qui est configuré en tant qu’appareil AQ. Vous effectuez ensuite un probe du hub IoT pour vérifier que l’appareil AQ reçoit la configuration de déploiement souhaitée, et qu’il peut exécuter tous les modules configurés correctement. Ce test est contenu dans edgeSmokeTest.sh.

  1. Pour commencer à créer un pipeline de mise en production, dans le volet du menu de gauche, sélectionnez Pipelines, puis Mises en production. Sélectionnez Nouveau pipeline. Le volet Sélectionner un modèle s’affiche. Pour créer un nouveau pipeline avec une tâche vide, sélectionnez travail vide, puis Enregistrer. Dans la boîte de dialogue Enregistrer, sélectionnez un Dossier dans la liste déroulante, puis entrez un Commentaire. Sélectionnez OK.

  2. Dans le volet du menu de gauche, sélectionnez Mises en production. Dans le volet du menu central, sélectionnez la liste déroulante Nouveau, puis sélectionnez Importer le pipeline de mise en production. Téléchargez le fichier release-pipeline.json situé à la racine de ce dépôt, puis importez-le. L’importation doit se dérouler correctement, comme ci-dessous.

    L’illustration montre le pipeline de mise en production.

    Vous devez corriger quelques éléments avant de pouvoir exécuter correctement le pipeline de mise en production, notamment les points de terminaison d’abonnement Azure, les pools d’agents, les paramètres de variables et la source d’artefact.

  3. Dans la liste déroulante Tâches, sélectionnez Créer un déploiement. Indiquez le nom approprié de l’abonnement Azure et du registre Azure Container Registry pour la tâche Azure IoT Edge - Envoyer (push) des images de module.

    L’illustration montre les problèmes liés à la tâche de déploiement.

  4. Indiquez le nom approprié de l’abonnement Azure et du registre Azure Container Registry pour la tâche Azure IoT Edge - Déployer sur des appareils IoT Edge.

  5. Dans la liste déroulante Tâches, sélectionnez Test de détection de fumée. Indiquez le nom approprié de l’abonnement Azure et du registre Azure Container Registry pour les tâches Supprimer tous les appareils AQ inscrits et Test de détection de fumée.

    L’illustration montre les problèmes liés à la tâche de test de détection de fumée.

  6. Pour corriger les pools d’agents, dans la liste déroulante Tâches, sélectionnez Créer un déploiement, puis sélectionnez Travail d’agent pour modifier le pool d’agents.

  7. Répétez la même étape. Dans la liste déroulante Tâches, sélectionnez Test de détection de fumée, puis Travail de l’Agent pour changer le pool d’agents en ubuntu latest (Version la plus récente d’Ubuntu).

  8. Désormais, vous devez pouvoir enregistrer le pipeline de mise en production. Nous vous recommandons fortement de l’enregistrer à ce stade si Azure DevOps le permet.

  9. Dabs l’onglet Variables, vous devez modifier toutes les variables entre crochets (<>).

    Cette illustration montre les variables à modifier dans le pipeline.

  10. Utilisez les mêmes valeurs pour acr.host, acr.user, acr.password et appinsights.instrumentationkey que celles utilisées dans la définition de build CI (intégration continue).

  11. iothub_name est le nom du hub IoT que vous avez créé. Accédez à la page d’accueil du portail Azure, au groupe de ressources que vous avez créé, puis effectuez une copie du nom du hub IoT.

  12. Pour les variables supplémentaires, vous devez créer un principal de service en effectuant les étapes suivantes :

    1. Accédez au portail Azure.

    2. Ouvrez Azure Cloud Shell.

    3. Exécutez az account list pour voir les abonnements disponibles et définissez l’abonnement approprié.

      az account set --subscription <subscriptionid>
      
    4. Créez un principal de service pour votre abonnement avec l’interface Azure CLI.

      az ad sp create-for-rbac --name <name> --role Contributor --scopes /subscriptions/<subscriptionid>
      
    5. Le résultat ressemble à ce qui suit.

      {
      "appId": "12345678-1234-1234-1234-1234567890ab",
      "displayName": "azure-iot-edge-device-container-sp",
      "name": "http://azure-iot-edge-device-container-sp",
      "password": "MyPassword",
      "tenant": "abcdefgh-abcd-abcd-abcd-abcdefghijkl"
      }
      
    6. Prenez note des valeurs name, password et tenant, car elles sont utilisées pour spAppURl, spPassword et tenant respectivement.

    7. Fournissez tous les paramètres nécessaires dans Variables.

  13. Revenez à Pipeline, puis ajoutez un artefact.

    L’illustration montre comment ajouter un artefact.

  14. Sélectionnez votre pipeline de build CI en tant que type de source, puis configurez-le pour obtenir la dernière version.

  15. Une fois que vous avez configuré tous les éléments de manière appropriée, sélectionnez Enregistrer.

  16. Dans le volet du menu de gauche, sélectionnez Pipelines, puis Mises en production.

  17. Sélectionnez le pipeline de mise en production créé, puis sélectionnez Créer une mise en production.

    L’illustration montre comment créer un pipeline de mise en production.

    Le nouveau pipeline de mise en production doit commencer à s’exécuter.