Esercizio - Installare il runtime IoT Edge per Linux
Prima di iniziare, sono necessari:
- Una sottoscrizione di Microsoft Azure. Se non è ancora disponibile alcuna sottoscrizione, è possibile registrarsi per una valutazione gratuita all'indirizzo https://azure.microsoft.com/free . Gli studenti possono eseguire la registrazione per ottenere un account Azure for Students.
Creare le risorse cloud
Creare un gruppo di risorse
Eseguire i passaggi seguenti nell'ambiente Azure Cloud Shell.
Selezionare 'Bash' in alto a sinistra come ambiente per Cloud Shell.
Aggiungere l'estensione Azure IoT all'istanza di Cloud Shell.
az extension add --name azure-iot
Creare un gruppo di risorse nella località eastus2 usando il comando seguente. Assegnare un nome al gruppo di risorse.
az group create --name <resource-group-name> --location eastus2
Creare un dispositivo IoT Edge nell'hub IoT
Creare un hub IoT di livello F1 con il comando seguente. Assegnare un nome all'hub IoT e sostituirlo con il gruppo di risorse.
az iot hub create --resource-group <resource-group-name> --name <iot-hub-name> --sku F1 --partition-count 2
È necessario registrare un dispositivo con l'hub IoT perché questo possa connettersi. Eseguire il comando seguente per creare l'identità di un dispositivo nell'hub IoT. Assegnare un nome al dispositivo IoT e sostituirlo con l'hub IoT.
az iot hub device-identity create --hub-name <iot-hub-name> --device-id <device-id>
Installare IoT Edge per Linux
Nota
Per altre informazioni sull'installazione di IoT Edge per Linux, vedere la pagina Microsoft corrispondente.
Aprire il terminale nel computer Linux.
Installare la configurazione del repository che corrisponde al sistema operativo del dispositivo.
Ubuntu Server 18.04:
curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/prod.list > ./microsoft-prod.list
Copiare l'elenco generato nella directory sources.list.d.
sudo cp ./microsoft-prod.list /etc/apt/sources.list.d/
Installare la chiave pubblica GPG Microsoft.
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg sudo cp ./microsoft.gpg /etc/apt/trusted.gpg.d/
Installare un motore di contenitore
Azure IoT Edge si basa su un runtime del contenitore compatibile con OCI. Per gli scenari di produzione, è consigliabile usare il motore Moby. Il motore Moby è l'unico motore di contenitore supportato ufficialmente con Azure IoT Edge. Le immagini del contenitore Docker CE/EE sono compatibili con il runtime di Moby.
Aggiornare gli elenchi di pacchetti nel dispositivo.
sudo apt-get update
Installare il motore Moby.
sudo apt-get install moby-engine
Se si verificano errori durante l'installazione del motore di contenitore Moby, verificare che il kernel Linux sia compatibile con Moby. Alcuni produttori di dispositivi incorporati commercializzano immagini di dispositivo che contengono kernel Linux personalizzati senza le funzionalità necessarie per la compatibilità con il motore di contenitore. Eseguire il comando seguente, che usa lo script check-config fornito da Moby, per controllare la configurazione del kernel:
curl -sSL https://raw.githubusercontent.com/moby/moby/master/contrib/check-config.sh -o check-config.sh
chmod +x check-config.sh
./check-config.sh
Nell'output dello script controllare che tutti gli elementi in Generally Necessary
e Network Drivers
siano abilitati. Se mancano funzionalità, abilitarle ricreando il kernel dall'origine e selezionando i moduli associati per l'inclusione nel file config del kernel appropriato. Analogamente, se si usa un generatore di configurazione del kernel come defconfig
o menuconfig
, individuare e abilitare le rispettive funzionalità, quindi ricreare il kernel di conseguenza. Dopo aver distribuito il kernel appena modificato, eseguire di nuovo lo script check-config per verificare che tutte le funzionalità necessarie siano state abilitate correttamente.
Installare il daemon di sicurezza di IoT Edge
Il daemon di sicurezza di IoT Edge fornisce e gestisce gli standard di sicurezza nel dispositivo IoT Edge. Il daemon viene avviato a ogni avvio del dispositivo e ne esegue il bootstrap avviando la parte restante del runtime IoT Edge.
Aggiornare gli elenchi di pacchetti nel dispositivo.
sudo apt-get update
Verificare le versioni di IoT Edge disponibili.
apt list -a iotedge
Installare la versione più recente del daemon di sicurezza. A tale scopo, usare il comando seguente che installa anche la versione più recente del pacchetto libiothsm-std:
sudo apt-get install iotedge
Effettuare il provisioning del dispositivo con la relativa identità cloud
Eseguire l'autenticazione con chiavi simmetriche
A questo punto, il runtime IoT Edge è installato nel dispositivo Linux ed è necessario effettuare il provisioning del dispositivo con le informazioni corrispondenti relative ad autenticazione e identità cloud.
Questa sezione illustra i passaggi per effettuare il provisioning di un dispositivo con l'autenticazione tramite chiave simmetrica. Il dispositivo dovrebbe essere registrato nell'hub IoT e la stringa di connessione dovrebbe essere stata recuperata dalle informazioni del dispositivo.
Nel dispositivo IoT Edge aprire il file di configurazione.
sudo nano /etc/iotedge/config.yaml
Individuare le configurazioni di provisioning del file e rimuovere il commento dalla sezione Manual provisioning configuration using a connection string, se non è già stato fatto.
```toml
# Manual provisioning configuration using a connection string
provisioning:
source: "manual"
device_connection_string: "<ADD DEVICE CONNECTION STRING HERE>"
```
Aggiornare il valore di device_connection_string con la stringa di connessione del dispositivo IoT Edge. Assicurarsi che tutte le altre sezioni di provisioning siano impostate come commento. Verificare anche che la riga provisioning: non sia preceduta da spazi vuoti e che gli elementi annidati siano rientrati di due spazi.
Per incollare il contenuto degli Appunti in Nano, premere MAIUSC+freccia DESTRA, quindi fare clic o premere MAIUSC+INS.
Salva e chiude il file.
CTRL + X`, `Y`, `Enter
Dopo aver immesso le informazioni di provisioning nel file di configurazione, riavviare il daemon:
sudo systemctl restart iotedge
Verificare la corretta configurazione
Verificare che il runtime sia stato installato e configurato correttamente nel dispositivo IoT Edge.
Verificare che il servizio di sistema IoT Edge sia in esecuzione.
sudo systemctl status iotedge