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 raggiungerà il 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 con il runtime di Azure IoT Edge installato e configurato usando una stringa di connessione del dispositivo pre-fornita. La distribuzione viene eseguita usando un modello di Azure Resource Manager basato su cloud-init gestito nel repository di progetti iotedge-vm-deploy.

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

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 Distribuisci in Azure contenuto nel repository del progetto iotedge-vm-deploy.

  1. Si distribuirà 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 fornito con privilegi radice per la distribuzione.
    Stringa di connessione del dispositivo Una stringa di connessione del dispositivo per un dispositivo creato nell'hub IoT previsto.
    Dimensioni macchina virtuale La dimensione 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.

    Selezionare Next : Review + create per 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. 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 usare 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 effettuando l'accesso:

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

    1. Elencare le sottoscrizioni:

      az account list --output table
      
    2. Copiare il campo SubscriptionID per la sottoscrizione da 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, specificare 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. 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 pubblico. 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 usare 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.

In caso di problemi durante l'installazione del runtime 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 Macchine virtuali di Azure relativa all'apertura di porte ed endpoint a una macchina virtuale Linux.