Partager via


Exécuter Azure IoT Edge sur des machines virtuelles Ubuntu

S’applique à : icône oui IoT Edge 1.1

Important

IoT Edge la date de fin du support 1.1 était le 13 décembre 2022. Consultez la page Politique de support Microsoft pour plus d’informations sur la prise en charge de ce produit, de ce service, de cette technologie ou de cette API. Pour plus d’informations sur la mise à jour vers la dernière version d’IoT Edge, consultez Mettre à jour IoT Edge.

Le runtime Azure IoT Edge est ce qui transforme un appareil en appareil IoT Edge. Le runtime peut être déployé sur un appareil de petite taille comme un Raspberry Pi ou de grande taille comme un serveur industriel. Une fois qu’un appareil est configuré avec le runtime IoT Edge, vous pouvez commencer à y déployer une logique métier à partir du cloud.

Pour en savoir plus sur le fonctionnement du runtime IoT Edge et les composants inclus, consultez Présentation du runtime Azure IoT Edge et de son architecture.

Cet article décrit les étapes de déploiement d’une machine virtuelle Ubuntu 18.04 LTS avec le runtime Azure IoT Edge installé et configuré à l’aide d’une chaîne de connexion d’appareil fournie. Le déploiement s’effectue à l’aide d’un modèle Resource Manager basé sur cloud-init géré dans le dépôt de projet iotedge-vm-deploy.

Au premier démarrage, la machine virtuelle installe la version la plus récente du runtime Azure IoT Edge via cloud-init. Elle définit également une chaîne de connexion fournie avant le démarrage du runtime, ce qui vous permet de configurer et de connecter facilement l’appareil IoT Edge sans avoir à démarrer une session SSH ou de bureau à distance.

Déployer à l’aide du Déployer sur Azure

Le bouton Déployer sur Azure permet d’effectuer un déploiement simplifié des modèles Resource Manager conservés sur GitHub. Cette section montre l’utilisation du bouton Déployer sur Azure contenu dans le dépôt de projet iotedge-vm-deploy.

  1. Nous allons déployer une machine virtuelle Linux prenant en charge Azure IoT Edge à l’aide du modèle Resource Manager iotedge-vm-deploy. Pour commencer, cliquez sur le bouton ci-dessous :

    Bouton déployer sur Azure pour iotedge-vm-deploy

  2. Dans la fenêtre qui vient de s’ouvrir, renseignez les champs de formulaire disponibles :

    Capture d’écran montrant le modèle iotedge-vm-deploy

    Champ Description
    Abonnement Abonnement Azure actif dans lequel déployer la machine virtuelle.
    Groupe de ressources Groupe de ressources existant ou nouvellement créé pour contenir la machine virtuelle et ses ressources associées.
    Région Région géographique dans laquelle déployer la machine virtuelle. Par défaut, il s’agit de l’emplacement du groupe de ressources sélectionné.
    DNS Label Prefix Valeur obligatoire de votre choix, utilisée pour préfixer le nom d’hôte de la machine virtuelle.
    Nom de l’utilisateur administrateur Nom de l’utilisateur qui sera doté de privilèges root sur le déploiement.
    Chaîne de connexion de l’appareil Chaîne de connexion d’appareil pour un appareil créé dans votre IoT Hub prévu.
    Taille de machine virtuelle Taille de la machine virtuelle à déployer.
    Version du système d’exploitation Ubuntu Version du système d’exploitation Ubuntu à installer sur la machine virtuelle de base.
    Type d'authentification Choisissez sshPublicKey ou mot de passe selon votre préférence.
    Mot de passe ou clé d’administrateur Valeur de la clé publique SSH ou du mot de passe en fonction du choix du type d’authentification.

    Lorsque tous les champs sont renseignés, cliquez sur le bouton en bas pour passer à l’emplacement où vous pouvez passer à Next : Review + create où vous pouvez vérifier les conditions générales, puis cliquez sur Créer pour commencer le déploiement.

  3. Vérifiez que le déploiement a complètement abouti. Une ressource de machine virtuelle doit avoir été déployée dans le groupe de ressources sélectionné. Notez le nom de la machine, qui doit être au format vm-0000000000000. Notez aussi le Nom DNS associé, qui doit être au format <dnsLabelPrefix>.<location>.cloudapp.azure.com.

    Vous pouvez obtenir le Nom DNS dans la section Vue d’ensemble de la machine virtuelle récemment déployée dans le portail Azure.

    Capture d’écran montrant le nom dns de la machine virtuelle iotedge

  4. Si vous souhaitez établir une connexion SSH vers cette machine virtuelle après la configuration, utilisez le Nom DNS associé avec la commande : ssh <adminUsername>@<DNS_Name>

Effectuer un déploiement sur Azure CLI

  1. Assurez-vous que vous avez installé l’extension iot Azure CLI IOT avec :

    az extension add --name azure-iot
    
  2. Ensuite, si vous utilisez Azure CLI sur votre ordinateur de bureau, commencez par vous connecter :

    az login
    
  3. Si vous avez plusieurs abonnements, sélectionnez celui que vous souhaitez utiliser :

    1. Répertoriez vos abonnements :

      az account list --output table
      
    2. Copiez le champ SubscriptionID de l’abonnement que vous souhaitez utiliser.

    3. Définissez votre abonnement de travail avec l’ID que vous venez de copier :

      az account set -s <SubscriptionId>
      
  4. Créez un groupe de ressources (ou spécifiez un groupe existant aux étapes suivantes) :

    az group create --name IoTEdgeResources --location westus2
    
  5. Créez une machine virtuelle :

    Pour utiliser l’authenticationType password, consultez l’exemple ci-dessous :

    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/1.1/edgeDeploy.json" \
    --parameters dnsLabelPrefix='my-edge-vm1' \
    --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id <REPLACE_WITH_DEVICE-NAME> --hub-name <REPLACE-WITH-HUB-NAME> -o tsv) \
    --parameters authenticationType='password' \
    --parameters adminUsername='<REPLACE_WITH_USERNAME>' \
    --parameters adminPasswordOrKey="<REPLACE_WITH_SECRET_PASSWORD>"
    

    Pour vous authentifier avec une clé SSH, vous pouvez spécifier l’authenticationType sshPublicKey, puis fournir la valeur de la clé SSH dans le paramètre adminPasswordOrKey. Voici un exemple de .

    #Generate the SSH Key
    ssh-keygen -m PEM -t rsa -b 4096 -q -f ~/.ssh/iotedge-vm-key -N ""
    
    #Create a VM using the iotedge-vm-deploy script
    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/1.1/edgeDeploy.json" \
    --parameters dnsLabelPrefix='my-edge-vm1' \
    --parameters adminUsername='<REPLACE_WITH_USERNAME>' \
    --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id <REPLACE_WITH_DEVICE-NAME> --hub-name <REPLACE-WITH-HUB-NAME> -o tsv) \
    --parameters authenticationType='sshPublicKey' \
    --parameters adminPasswordOrKey="$(< ~/.ssh/iotedge-vm-key.pub)"
    
  6. Vérifiez que le déploiement a complètement abouti. Une ressource de machine virtuelle doit avoir été déployée dans le groupe de ressources sélectionné. Notez le nom de la machine, qui doit être au format vm-0000000000000. Notez aussi le Nom DNS associé, qui doit être au format <dnsLabelPrefix>.<location>.cloudapp.azure.com.

    Vous pouvez trouver le Nom DNS dans la sortie au format JSON de l’étape précédente, à l’intérieur de la section outputs qui fait partie de l’entrée SSH publique. La valeur de cette entrée peut être utilisée pour la connexion SSH à la machine nouvellement déployée.

    "outputs": {
      "public SSH": {
        "type": "String",
        "value": "ssh <adminUsername>@<DNS_Name>"
      }
    }
    

    Vous pouvez également trouver le Nom DNS dans la section Vue d’ensemble de la machine virtuelle nouvellement déployée dans le portail Azure.

    Capture d’écran montrant le nom dns de la machine virtuelle iotedge

  7. Si vous souhaitez établir une connexion SSH vers cette machine virtuelle après la configuration, utilisez le Nom DNS associé avec la commande : ssh <adminUsername>@<DNS_Name>

Étapes suivantes

Maintenant que vous disposez d’un appareil IoT Edge approvisionné avec le runtime installé, vous pouvez déployer des modules IoT Edge.

Si vous ne parvenez pas à installer correctement le runtime IoT Edge, consultez la page de résolution des problèmes.

Pour mettre à jour une installation existante vers la dernière version d’IoT Edge, voir Mettre à jour le runtime et le démon de sécurité IoT Edge.

Si vous souhaitez ouvrir des ports pour accéder à la machine virtuelle via SSH ou d’autres connexions entrantes, reportez-vous à la documentation de des machines virtuelles Azure sur l’ouverture de ports et de points de terminaison sur une machine virtuelle Linux