Exécuter Azure IoT Edge sur des machines virtuelles Ubuntu
S’applique à : IoT Edge 1.5 IoT Edge 1.4
Important
IoT Edge 1.5 LTS et IoT Edge 1.4 LTS sont des versions prises en charge. IoT Edge 1.4 LTS sera en fin de vie le 12 novembre 2024. Si vous utilisez une version antérieure, consultez l’article 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 liste les étapes de déploiement d’une machine virtuelle Ubuntu avec le runtime Azure IoT Edge installé et configuré à l’aide d’une chaîne de connexion d’appareil pré-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 référentiel du projet iotedge-vm-deploy.
Vous allez déployer une machine virtuelle Linux prenant en charge Azure IoT Edge à l’aide du modèle Azure Resource Manager iotedge-vm-deploy. Pour commencer, sélectionnez le bouton suivant :
Dans la fenêtre qui vient de s’ouvrir, renseignez les champs de formulaire disponibles :
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 racines 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. Sélectionnez
Next : Review + create
pour passer en revue les conditions générales, puis sélectionnez Créer pour commencer le déploiement.Vérifiez que le déploiement a abouti. Une ressource de machine virtuelle est 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.
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
Assurez-vous d’avoir installé l’extension iot Azure CLI avec :
az extension add --name azure-iot
Ensuite, si vous utilisez Azure CLI sur votre ordinateur de bureau, commencez par vous connecter :
az login
Si vous avez plusieurs abonnements, sélectionnez celui que vous souhaitez utiliser :
Répertoriez vos abonnements :
az account list --output table
Copiez le champ SubscriptionID de l’abonnement que vous souhaitez utiliser.
Définissez votre abonnement de travail avec l’ID que vous venez de copier :
az account set -s <SubscriptionId>
Créez un groupe de ressources (ou spécifiez un groupe existant aux étapes suivantes) :
az group create --name IoTEdgeResources --location westus2
Créez une machine virtuelle :
Pour utiliser un authenticationType de
password
, consultez 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 authenticationType
sshPublicKey
, 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)"
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 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.
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 sur les machines virtuelles Azure sur l’ouverture de ports et de points de terminaison vers une machine virtuelle Linux.