Partager via


Exécuter Azure IoT Edge sur des machines virtuelles Ubuntu

S’applique à :Coche IoT Edge 1.5 IoT Edge 1.5

Important

IoT Edge 1.5 LTS est la version prise en charge. IoT Edge 1.4 LTS est en fin de vie depuis le 12 novembre 2024. Si vous utilisez une version antérieure, consultez l’article Mettre à jour IoT Edge.

Le runtime Azure IoT Edge transforme un appareil en appareil IoT Edge. Déployez le runtime sur des appareils aussi petits qu’un Raspberry Pi ou aussi grand qu’un serveur industriel. Après avoir configuré le runtime IoT Edge, déployez la logique métier sur l’appareil à partir du cloud.

Pour en savoir plus sur le fonctionnement du runtime IoT Edge et ses composants, consultez comprendre le runtime Azure IoT Edge et son architecture.

Cet article répertorie les étapes à suivre pour déployer une machine virtuelle Ubuntu avec le runtime Azure IoT Edge installé et configuré à l’aide d’une chaîne de connexion d’appareil fournie. Le déploiement utilise un modèle Azure Resource Manager basé sur cloud-init du référentiel de projet iotedge-vm-deploy.

Lors du premier démarrage, la machine virtuelle installe la dernière version du runtime Azure IoT Edge à l’aide de cloud-init. Il définit également une chaîne de connexion fournie avant le démarrage du runtime. Vous pouvez donc configurer et connecter rapidement l’appareil IoT Edge sans démarrer une session SSH ou Bureau à distance.

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

Le bouton Déployer sur Azure vous permet de déployer rapidement des modèles Azure Resource Manager à partir de GitHub. Cette section montre comment utiliser le bouton Déployer sur Azure dans le référentiel de projet iotedge-vm-deploy .

  1. Déployez une machine virtuelle Linux avec Azure IoT Edge à l’aide du modèle iotedge-vm-deploy Azure Resource Manager. Pour démarrer, sélectionnez le bouton suivant :

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

  2. Dans la nouvelle fenêtre, entrez les valeurs des champs de formulaire disponibles :

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

    Champ Descriptif
    Abonnement Abonnement Azure actif dans lequel déployer la machine virtuelle.
    Groupe de ressources Un groupe de ressources existant ou nouveau pour contenir la machine virtuelle et ses ressources associées.
    Région Région géographique où vous déployez la machine virtuelle. Cette valeur est définie par défaut sur l’emplacement du groupe de ressources sélectionné.
    Préfixe d’étiquette DNS Vous choisissez une valeur requise pour préfixer le nom d’hôte de la machine virtuelle.
    Nom de l’utilisateur administrateur Nom d'utilisateur disposant de privilèges root pour le déploiement.
    Chaîne de connexion de l’appareil Chaîne de connexion d’appareil pour un appareil que vous avez créé dans votre hub IoT.
    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 en fonction de vos préférences.
    Mot de passe ou clé d’administrateur Clé publique SSH ou valeur de mot de passe, selon le type d’authentification que vous choisissez.

    Sélectionnez cette option Next : Review + create pour passer en revue les termes, puis sélectionnez Créer pour démarrer le déploiement.

  3. Vérifiez que le déploiement se termine correctement. La ressource de machine virtuelle est déployée dans le groupe de ressources sélectionné. Notez le nom de l’ordinateur, qui est au format vm-0000000000000. Notez également le nom DNS associé, qui est au format <dnsLabelPrefix>.<location>. cloudapp.azure.com.

    Vous trouverez le nom DNS dans la section Vue d’ensemble de la nouvelle machine virtuelle dans le portail Azure.

    Capture d’écran montrant le nom dns de la machine virtuelle IoT Edge.

  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 d’avoir installé l’extension iot Azure CLI 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 opérationnel avec l’ID que vous avez copié :

      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 un authenticationType de password, utilisez l’exemple suivant :

    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/main/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='password' \
    --parameters adminPasswordOrKey="<REPLACE_WITH_SECRET_PASSWORD>"
    

    Pour vous authentifier avec une clé SSH, spécifiez le authenticationTypesshPublicKey, puis fournissez la valeur de la clé SSH dans le paramètre adminPasswordOrKey. Voir l’exemple suivant :

    #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/main/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 abouti. Une ressource de machine virtuelle doit être déployée dans le groupe de ressources sélectionné. Notez le nom de l’ordinateur, il est au format vm-0000000000000. Notez également le nom DNS associé, qui est au format <dnsLabelPrefix>.<location>. cloudapp.azure.com.

    Vous pouvez obtenir le nom DNS à partir de la sortie au format JSON de l’étape précédente, dans la section sorties dans le cadre de l’entrée SSH publique . Utilisez cette valeur pour ssh sur l’ordinateur nouvellement déployé.

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

    Vous pouvez également obtenir le nom DNS à partir de 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 IoT Edge.

  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 avez provisionné un appareil IoT Edge avec le runtime installé, déployez des modules IoT Edge.

Si vous rencontrez des problèmes lors de l’installation du 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, consultez Mettre à jour le démon et le runtime de sécurité IoT Edge.

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