Eseguire Azure IoT Edge in macchine virtuali Ubuntu

Si applica a:Segno di spunta IoT Edge 1.5 IoT Edge 1.5 Segno di spunta IoT Edge 1.4 IoT Edge 1.4

Importante

IoT Edge 1.5 LTS e IoT Edge 1.4 LTS sono versioni supportate. IoT Edge 1.4 LTS è di fine vita il 12 novembre 2024. Se si usa una versione precedente, vedere Aggiornare IoT Edge.

Il runtime di Azure IoT Edge è ciò che trasforma un dispositivo in un dispositivo IoT Edge. il runtime può essere distribuito in dispositivi di piccole dimensioni come Raspberry Pi o di grandi dimensioni come un server industriale. Quando un dispositivo viene configurato con il runtime IoT Edge, è possibile iniziare a distribuirvi la logica di business dal cloud.

Per altre informazioni sul funzionamento del runtime di IoT Edge e sui componenti inclusi, vedere Informazioni sul runtime Azure IoT Edge e la relativa architettura.

Questo articolo elenca i passaggi per distribuire una macchina virtuale Ubuntu 20.04 LTS con il runtime di Azure IoT Edge installato e configurato usando un dispositivo presupplied stringa di connessione.This article lists the steps to deploy an Ubuntu 20.04 LTS virtual machine with the Azure IoT Edge runtime installed and configured using a presupplied device stringa di connessione. La distribuzione viene eseguita usando un modello di Azure Resource Manager basato su cloud-init gestito nel repository di progetti iotedge-vm-deploy.

Al primo avvio, la macchina virtuale installa la versione più recente del runtime di Azure IoT Edge tramite cloud-init. Imposta anche un stringa di connessione fornito prima dell'avvio del runtime, consentendo di configurare e connettere facilmente il dispositivo IoT Edge senza la necessità di avviare una sessione desktop remoto o SSH.

Eseguire la distribuzione con il pulsante Distribuisci in Azure

Il pulsante Distribuisci in Azure consente una distribuzione semplificata dei modelli di Azure Resource Manager gestiti in GitHub. Questa sezione illustra l'utilizzo del pulsante Deploy to Azure (Distribuisci in Azure) contenuto nel repository del progetto iotedge-vm-deploy .

  1. Verrà distribuita una macchina virtuale Linux abilitata per Azure IoT Edge usando il modello iotedge-vm-deploy di Azure Resource Manager. Per iniziare, selezionare il pulsante seguente:

    Pulsante Distribuisci in Azure per iotedge-vm-deploy

  2. Nella finestra appena avviata compilare i campi del modulo disponibili:

    Screenshot che mostra il modello iotedge-vm-deploy

    Campo Descrizione
    Abbonamento Sottoscrizione di Azure attiva in cui distribuire la macchina virtuale.
    Gruppo di risorse Gruppo di risorse esistente o appena creato per contenere la macchina virtuale e le risorse associate.
    Area L'area geografica in cui distribuire la macchina virtuale, questo valore viene impostato per impostazione predefinita sulla posizione del gruppo di risorse selezionato.
    Prefisso etichetta DNS Valore obbligatorio della scelta usata per anteporre il nome host della macchina virtuale.
    Nome utente amministratore Nome utente, che verrà fornito privilegi radice per la distribuzione.
    Stringa di connessione del dispositivo Un dispositivo stringa di connessione per un dispositivo creato all'interno del hub IoT previsto.
    Dimensioni macchina virtuale Dimensioni della macchina virtuale da distribuire.
    Versione del sistema operativo Ubuntu Versione del sistema operativo Ubuntu da installare nella macchina virtuale di base.
    Tipo di autenticazione Scegliere sshPublicKey o password a seconda delle preferenze.
    Admin Password or Key (Chiave o password amministratore) Valore della chiave pubblica SSH o del valore della password a seconda della scelta del tipo di autenticazione.

    Quando tutti i campi sono stati compilati, selezionare il pulsante nella parte inferiore per passare alla Next : Review + create posizione in cui è possibile esaminare i termini e selezionare Crea per iniziare la distribuzione.

  3. Verificare che la distribuzione sia stata completata correttamente. Una risorsa macchina virtuale viene distribuita nel gruppo di risorse selezionato. Prendere nota del nome del computer, che deve essere nel formato vm-0000000000000. Prendere nota anche del valore di Nome DNS associato, che deve essere nel formato <dnsLabelPrefix>.<location>.cloudapp.azure.com.

    È possibile ottenere il valore di Nome DNS dalla sezione Panoramica della nuova macchina virtuale distribuita nel portale di Azure.

    Screenshot che mostra il nome DNS della macchina virtuale iotedge

  4. Se si vuole eseguire SSH in questa macchina virtuale dopo l'installazione, usare il nome DNS associato con il comando :ssh <adminUsername>@<DNS_Name>

Eseguire la distribuzione dall'interfaccia della riga di comando di Azure

  1. Assicurarsi di aver installato l'estensione iot dell'interfaccia della riga di comando di Azure con:

    az extension add --name azure-iot
    
  2. Successivamente, se si usa l'interfaccia della riga di comando di Azure sul desktop, iniziare eseguendo l'accesso:

    az login
    
  3. Se si hanno più sottoscrizioni, selezionare la sottoscrizione che si vuole usare:

    1. Elencare le sottoscrizioni:

      az account list --output table
      
    2. Copiare il campo SubscriptionID per la sottoscrizione che si vuole usare.

    3. Impostare la sottoscrizione di lavoro con l'ID copiato:

      az account set -s <SubscriptionId>
      
  4. Creare un nuovo gruppo di risorse o specificarne uno esistente nei passaggi successivi:

    az group create --name IoTEdgeResources --location westus2
    
  5. Creare una nuova macchina virtuale:

    Per usare un authenticationType di password, vedere l'esempio seguente:

    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>"
    

    Per eseguire l'autenticazione con una chiave SSH, è possibile farlo specificando un authenticationType di sshPublicKey, quindi specificare il valore della chiave SSH nel parametro adminPasswordOrKey. Vedere l'esempio seguente:

    #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. Verificare che la distribuzione sia stata completata correttamente. Una risorsa macchina virtuale deve essere distribuita nel gruppo di risorse selezionato. Prendere nota del nome del computer, che deve essere nel formato vm-0000000000000. Prendere nota anche del valore di Nome DNS associato, che deve essere nel formato <dnsLabelPrefix>.<location>.cloudapp.azure.com.

    Il nome DNS può essere ottenuto dall'output in formato JSON del passaggio precedente, all'interno della sezione output come parte della voce SSH pubblica. Il valore di questa voce può essere usato per connettersi tramite SSH al computer appena distribuito.

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

    Il nome DNS può essere ottenuto anche dalla sezione Panoramica della macchina virtuale appena distribuita all'interno del portale di Azure.

    Screenshot che mostra il nome DNS della macchina virtuale iotedge

  7. Se si vuole eseguire SSH in questa macchina virtuale dopo l'installazione, usare il nome DNS associato con il comando :ssh <adminUsername>@<DNS_Name>

Passaggi successivi

Dopo aver eseguito il provisioning del dispositivo IoT Edge con il runtime installato, è possibile distribuire moduli IoT Edge.

Se si verificano problemi con l'installazione corretta del runtime di IoT Edge, vedere la pagina relativa alla risoluzione dei problemi .

Per aggiornare un'installazione esistente alla versione più recente di IoT Edge, vedere Aggiornare il daemon di sicurezza e il runtime di IoT Edge.

Per aprire le porte per accedere alla macchina virtuale tramite SSH o altre connessioni in ingresso, vedere la documentazione di Azure Macchine virtuali sull'apertura di porte ed endpoint a una macchina virtuale Linux.