Eseguire Azure IoT Edge in macchine virtuali Ubuntu
Si applica a: IoT Edge 1.1
Importante
La data di fine del supporto di IoT Edge 1.1 è stata il 13 dicembre 2022. Controlla il ciclo di vita dei prodotti Microsoft per ottenere informazioni sul modo in cui viene supportato questo prodotto, servizio, tecnologia o API. Per altre informazioni sull'aggiornamento alla versione più recente di IoT Edge, 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 18.04 LTS con il runtime di Azure IoT Edge installato e configurato usando un dispositivo pre-fornito 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.
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'uso del pulsante Deploy to Azure (Distribuisci in Azure) contenuto nel repository di progetti iotedge-vm-deploy .
Verrà distribuita una macchina virtuale Linux abilitata per Azure IoT Edge usando il modello iotedge-vm-deploy di Azure Resource Manager. Per iniziare, fare clic sul pulsante seguente:
Nella finestra appena avviata compilare i campi del modulo disponibili:
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 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. Quando tutti i campi sono stati compilati, fare clic sul pulsante nella parte inferiore per passare alla
Next : Review + create
posizione in cui è possibile esaminare i termini e fare clic su Crea per avviare la distribuzione.Verificare che la distribuzione sia stata completata correttamente. Una risorsa macchina virtuale deve essere stata 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.
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
Assicurarsi di aver installato l'estensione iot dell'interfaccia della riga di comando di Azure con:
az extension add --name azure-iot
Successivamente, se si usa l'interfaccia della riga di comando di Azure sul desktop, iniziare effettuando l'accesso:
az login
Se si hanno più sottoscrizioni, selezionare la sottoscrizione da usare:
Elencare le sottoscrizioni:
az account list --output table
Copiare il campo SubscriptionID per la sottoscrizione da usare.
Impostare la sottoscrizione di lavoro con l'ID copiato:
az account set -s <SubscriptionId>
Creare un nuovo gruppo di risorse o specificarne uno esistente nei passaggi successivi:
az group create --name IoTEdgeResources --location westus2
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/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>"
Per eseguire l'autenticazione con una chiave SSH, è possibile specificare un authenticationType di
sshPublicKey
, quindi specificare il valore della chiave SSH nel parametro adminPasswordOrKey. Di seguito è illustrato un esempio.#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)"
Verificare che la distribuzione sia stata completata correttamente. Una risorsa macchina virtuale deve essere stata 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.
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 Azure Macchine virtuali sull'apertura di porte ed endpoint a una macchina virtuale Linux