Een IoT Edge-apparaat in Linux maken en inrichten met behulp van symmetrische sleutels
Van toepassing op: IoT Edge 1.5 IoT Edge 1.4
Belangrijk
IoT Edge 1.5 LTS en IoT Edge 1.4 LTS worden ondersteund releases. IoT Edge 1.4 LTS eindigt op 12 november 2024. Raadpleeg IoT Edge bijwerken als u een eerdere versie hebt.
Dit artikel bevat end-to-end instructies voor het registreren en inrichten van een Linux IoT Edge-apparaat dat de installatie van IoT Edge omvat.
Elk apparaat dat verbinding maakt met een IoT-hub heeft een apparaat-id die wordt gebruikt voor het bijhouden van cloud-naar-apparaat - of apparaat-naar-cloud-communicatie . U configureert een apparaat met de bijbehorende verbindingsgegevens, waaronder:
- Hostnaam van IoT Hub
- Apparaat-ID
- Verificatiegegevens om verbinding te maken met IoT Hub
De stappen in dit artikel doorlopen een proces met de naam handmatig inrichten, waarbij u één apparaat verbindt met de IoT-hub. Voor handmatige inrichting hebt u twee opties voor het verifiëren van IoT Edge-apparaten:
Symmetrische sleutels: wanneer u een nieuwe apparaat-id in IoT Hub maakt, worden er twee sleutels gemaakt. U plaatst een van de sleutels op het apparaat en geeft de sleutel aan IoT Hub weer bij het verifiëren.
Deze verificatiemethode is sneller om aan de slag te gaan, maar niet zo veilig.
X.509 zelfondertekend: u maakt twee X.509-identiteitscertificaten en plaatst deze op het apparaat. Wanneer u een nieuwe apparaat-id in IoT Hub maakt, geeft u vingerafdruk van beide certificaten op. Wanneer het apparaat wordt geverifieerd bij IoT Hub, geeft het één certificaat weer en controleert IoT Hub of het certificaat overeenkomt met de vingerafdruk.
Deze verificatiemethode is veiliger en wordt aanbevolen voor productiescenario's.
In dit artikel wordt beschreven hoe u symmetrische sleutels gebruikt als verificatiemethode. Als u X.509-certificaten wilt gebruiken, raadpleegt u Een IoT Edge-apparaat in Linux maken en inrichten met X.509-certificaten.
Notitie
Als u veel apparaten moet instellen en niet elk apparaat handmatig wilt inrichten, gebruikt u een van de volgende artikelen om te leren hoe IoT Edge werkt met de IoT Hub-apparaatinrichtingsservice:
Vereisten
In dit artikel wordt beschreven hoe u uw IoT Edge-apparaat registreert en IoT Edge (ook wel IoT Edge-runtime genoemd) installeert op uw apparaat. Zorg ervoor dat u beschikt over het hulpprogramma voor apparaatbeheer van uw keuze, bijvoorbeeld Azure CLI en apparaatvereisten voordat u uw apparaat registreert en installeert.
Hulpprogramma’s voor apparaatbeheer
U kunt Azure Portal, Visual Studio Code of Azure CLI gebruiken om uw apparaat te registreren. Elk hulpprogramma heeft zijn eigen vereisten of moet mogelijk worden geïnstalleerd:
Een gratis of standaard IoT-hub in uw Azure-abonnement.
Vereisten voor apparaten
Een X64-, ARM32- of ARM64 Linux-apparaat.
Microsoft publiceert installatiepakketten voor verschillende besturingssystemen.
Zie ondersteunde Systemen van Azure IoT Edge voor de meest recente informatie over welke besturingssystemen momenteel worden ondersteund voor productiescenario's.
Visual Studio Code-extensies
Als u Visual Studio Code gebruikt, zijn er nuttige Azure IoT-extensies waarmee het apparaat eenvoudiger kan worden gemaakt en beheerd.
Installeer zowel de Azure IoT Edge- als de Azure IoT Hub-extensies:
Azure IoT Edge. De Azure IoT Edge-hulpprogramma's voor de Visual Studio Code-extensie bevindt zich in de onderhoudsmodus.
Uw apparaat registreren
U kunt Azure Portal, Visual Studio Code of Azure CLI gebruiken om uw apparaat te registreren, afhankelijk van uw voorkeur.
In uw IoT-hub in Azure Portal worden IoT Edge-apparaten afzonderlijk gemaakt en beheerd van IoT-apparaten die niet zijn ingeschakeld voor Edge.
Meld u aan bij de Azure-portal en ga naar uw IoT Hub.
Selecteer Apparaten in het menu in het linkerdeelvenster en selecteer Vervolgens Apparaat toevoegen.
Geef op de pagina Een apparaat maken de volgende informatie op:
- Maak een beschrijvende apparaat-id, bijvoorbeeld
my-edge-device-1
(alle kleine letters). Kopieer deze apparaat-id, omdat u deze later gaat gebruiken. - Schakel het selectievakje IoT Edge-apparaat in.
- Selecteer symmetrische sleutel als verificatietype.
- Gebruik de standaardinstellingen voor het automatisch genereren van verificatiesleutels, waarmee het nieuwe apparaat wordt verbonden met uw hub.
- Maak een beschrijvende apparaat-id, bijvoorbeeld
Selecteer Opslaan.
U ziet nu dat uw nieuwe apparaat wordt vermeld in uw IoT-hub.
Nu u een apparaat hebt geregistreerd in IoT Hub, kunt u de inrichtingsgegevens ophalen die worden gebruikt om de installatie en inrichting van de IoT Edge-runtime in de volgende stap te voltooien.
Geregistreerde apparaten weergeven en inrichtingsgegevens ophalen
Apparaten die gebruikmaken van symmetrische sleutelverificatie hebben hun verbindingsreeks nodig om de installatie en inrichting van de IoT Edge-runtime te voltooien. De verbindingsreeks wordt gegenereerd voor uw IoT Edge-apparaat wanneer u het apparaat maakt. Voor Visual Studio Code en Azure CLI bevindt de verbindingsreeks zich in de JSON-uitvoer. Als u Azure Portal gebruikt om uw apparaat te maken, kunt u de verbindingsreeks van het apparaat zelf vinden. Wanneer u uw apparaat selecteert in uw IoT-hub, wordt het weergegeven als Primary connection string
op de apparaatpagina.
De edge-apparaten die verbinding maken met uw IoT-hub, worden weergegeven op de pagina Apparaten van uw IoT-hub. Als u meerdere apparaten hebt, kunt u de lijst filteren door het type IoT Edge-apparaten te selecteren en vervolgens Toepassen te selecteren.
Wanneer u klaar bent om uw apparaat in te stellen, hebt u de verbindingsreeks nodig waarmee uw fysieke apparaat wordt gekoppeld aan de identiteit in de IoT-hub. Apparaten die worden geverifieerd met symmetrische sleutels, hebben hun verbindingsreeks s beschikbaar om te kopiëren in de portal. Uw verbindingsreeks vinden in de portal:
- Selecteer op de pagina Apparaten de ioT Edge-apparaat-id in de lijst.
- Kopieer de waarde van de primaire verbindingsreeks of secundaire verbindingsreeks. Beide sleutels werken.
IoT Edge installeren
In deze sectie bereidt u uw virtuele Linux-machine of fysiek apparaat voor op IoT Edge. Vervolgens installeert u IoT Edge.
Voer de volgende opdrachten uit om de pakketopslagplaats toe te voegen en voeg vervolgens de ondertekeningssleutel van het Microsoft-pakket toe aan uw lijst met vertrouwde sleutels.
Belangrijk
Op 30 juni 2022 werd Raspberry Pi OS Stretch buiten gebruik gesteld van de ondersteuningslijst van het laag 1-besturingssysteem. Om potentiële beveiligingsproblemen te voorkomen, werkt u uw hostbesturingssysteem bij naar Bullseye.
Voor platformbesturingssystemen die in laag 2 worden ondersteund, worden installatiepakketten beschikbaar gesteld in Azure IoT Edge-releases. Zie de installatiestappen in offline- of specifieke versie-installatie.
Installatie kan worden uitgevoerd met een paar opdrachten. Open een terminal en voer de volgende opdrachten uit:
24.04:
wget https://packages.microsoft.com/config/ubuntu/24.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb
22.04:
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb
20.04:
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb
Zie ondersteunde platformen van Azure IoT Edge voor meer informatie over besturingssysteemversies.
Notitie
Azure IoT Edge-softwarepakketten zijn onderworpen aan de licentievoorwaarden die zich in elk pakket (usr/share/doc/{package-name}
of de LICENSE
map) bevinden. Lees de licentievoorwaarden voordat u een pakket gebruikt. Uw installatie en het gebruik van een pakket vormen uw aanvaarding van deze voorwaarden. Als u niet akkoord gaat met de licentievoorwaarden, gebruikt u dat pakket niet.
Een containerengine installeren
Azure IoT Edge is afhankelijk van een OCI-compatibele containerruntime. Voor productiescenario's raden we u aan de Moby-engine te gebruiken. De Moby-engine is de containerengine die officieel wordt ondersteund met IoT Edge. Docker CE/EE-containerinstallatiekopieën zijn compatibel met de Moby-runtime. Als u Ubuntu Core-snaps gebruikt, wordt de Docker-module onderhouden door Canonical en ondersteund voor productiescenario's.
Installeer de Moby-engine.
sudo apt-get update; \
sudo apt-get install moby-engine
De containerengine stelt standaard geen limieten voor de grootte van containerlogboeken in. Na verloop van tijd kan dit ertoe leiden dat het apparaat vol raakt met logboeken en onvoldoende schijfruimte heeft. U kunt uw logboek echter zo configureren dat dit lokaal wordt weergegeven, hoewel dit optioneel is. Zie controlelijst voor productie-implementatie voor meer informatie over logboekregistratieconfiguratie.
In de volgende stappen ziet u hoe u uw container configureert voor het gebruik van local
het logboekregistratiestuurprogramma als het mechanisme voor logboekregistratie.
Het configuratiebestand van de bestaande Docker-daemon maken of bewerken
sudo nano /etc/docker/daemon.json
Stel het standaardstuurprogramma voor logboekregistratie in op het
local
logboekregistratiestuurprogramma, zoals wordt weergegeven in het voorbeeld.{ "log-driver": "local" }
Start de containerengine opnieuw om de wijzigingen van kracht te laten worden.
sudo systemctl restart docker
De IoT Edge-runtime installeren
De IoT Edge-service biedt en onderhoudt beveiligingsstandaarden op het IoT Edge-apparaat. De service wordt gestart bij elke opstartbewerking en bootstrapt het apparaat door de rest van de IoT Edge-runtime te starten.
Notitie
Vanaf versie 1.2 verwerkt de IoT-identiteitsservice identiteitsinrichting en -beheer voor IoT Edge en voor andere apparaatonderdelen die moeten communiceren met IoT Hub.
De stappen in deze sectie vertegenwoordigen het gebruikelijke proces voor het installeren van de nieuwste IoT Edge-versie op een apparaat met internetverbinding. Als u een specifieke versie, zoals een voorlopige versie, moet installeren of offline moet installeren, volgt u de stappen voor offline - of specifieke versie-installatie verderop in dit artikel.
Tip
Als u al een IoT Edge-apparaat met een oudere versie hebt en een upgrade wilt uitvoeren naar de nieuwste versie, gebruikt u de stappen in De IoT Edge-beveiligingsdaemon en -runtime bijwerken. Latere versies verschillen voldoende van eerdere versies van IoT Edge die specifieke stappen nodig zijn om een upgrade uit te voeren.
Installeer de nieuwste versie van IoT Edge en het IoT Identity Service-pakket (als u nog niet up-to-date bent):
22.04:
sudo apt-get update; \ sudo apt-get install aziot-edge
20.04:
sudo apt-get update; \ sudo apt-get install aziot-edge defender-iot-micro-agent-edge
Het optionele defender-iot-micro-agent-edge
pakket bevat de microagent voor Microsoft Defender for IoT-beveiliging die inzicht biedt in beveiligingspostuurbeheer, beveiligingsproblemen, detectie van bedreigingen, vlootbeheer en meer om u te helpen uw IoT Edge-apparaten te beveiligen. Het is raadzaam om de microagent te installeren met de Edge-agent om beveiligingsbewaking en beveiliging van uw Edge-apparaten mogelijk te maken. Zie Wat is Microsoft Defender voor IoT voor apparaatbouwers voor meer informatie over Microsoft Defender voor IoT.
Het apparaat inrichten met de cloudidentiteit
Nu de containerengine en de IoT Edge-runtime op uw apparaat zijn geïnstalleerd, kunt u het apparaat instellen met de cloudidentiteits- en verificatiegegevens.
U kunt uw IoT Edge-apparaat configureren met symmetrische sleutelverificatie met behulp van de volgende opdracht:
sudo iotedge config mp --connection-string 'PASTE_DEVICE_CONNECTION_STRING_HERE'
Met deze iotedge config mp
opdracht maakt u een configuratiebestand op het apparaat en voert u uw verbindingsreeks in het configuratiebestand in.
Pas de configuratiewijzigingen toe.
sudo iotedge config apply
Als u het configuratiebestand wilt weergeven, kunt u het openen:
sudo nano /etc/aziot/config.toml
Modules implementeren
Als u uw IoT Edge-modules wilt implementeren, gaat u naar uw IoT-hub in Azure Portal en gaat u vervolgens naar:
Selecteer Apparaten in het menu IoT Hub.
Selecteer uw apparaat om de bijbehorende pagina te openen.
Selecteer het tabblad Modules instellen.
Omdat we de standaardmodules van IoT Edge (edgeAgent en edgeHub) willen implementeren, hoeven we geen modules aan dit deelvenster toe te voegen. Selecteer Dus selecteer Beoordelen en maken onderaan.
U ziet de JSON-bevestiging van uw modules. Selecteer Maken om de modules te implementeren.
Zie Een module implementeren voor meer informatie.
Geslaagde configuratie controleren
Controleer of de runtime goed is geïnstalleerd en geconfigureerd op uw IoT Edge-apparaat.
Tip
U hebt verhoogde bevoegdheden nodig om iotedge
-opdrachten uit te voeren. Nadat u zich de eerste keer na de installatie van de IoT Edge-runtime hebt afgemeld en opnieuw hebt aangemeld, worden uw machtigingen automatisch bijgewerkt. Gebruik tot die tijd sudo
voorafgaand aan de opdrachten.
Controleer of de IoT Edge-systeemservice wordt uitgevoerd.
sudo iotedge system status
Een geslaagd statusantwoord toont de
aziot
services als actief of gereed.Als u problemen met de service moet oplossen, haalt u de servicelogboeken op.
sudo iotedge system logs
Gebruik het hulpprogramma om de
check
configuratie- en verbindingsstatus van het apparaat te controleren.sudo iotedge check
U kunt een reeks antwoorden verwachten die OK (groen), Waarschuwing (geel) of Fout (rood) kunnen bevatten. Zie Oplossingen voor veelvoorkomende problemen voor Azure IoT Edge voor het oplossen van veelvoorkomende fouten.
Tip
sudo
Gebruik altijd om het controleprogramma uit te voeren, zelfs nadat uw machtigingen zijn bijgewerkt. Het hulpprogramma heeft verhoogde bevoegdheden nodig om toegang te krijgen tot het configuratiebestand om de configuratiestatus te verifiëren.Notitie
Op een nieuw ingericht apparaat ziet u mogelijk een fout met betrekking tot IoT Edge Hub:
× productiegereedheid: de opslagmap van Edge Hub blijft behouden op het bestandssysteem van de host: foutkan de huidige status van de EdgeHub-container niet controleren
Deze fout wordt verwacht op een nieuw ingericht apparaat omdat de IoT Edge Hub-module nog niet wordt uitgevoerd. Zorg ervoor dat uw IoT Edge-modules zijn geïmplementeerd in de vorige stappen. Met de implementatie wordt deze fout opgelost.
U kunt ook een statuscode zien als
417 -- The device's deployment configuration is not set
. Zodra uw modules zijn geïmplementeerd, wordt deze status gewijzigd.Wanneer de service voor het eerst wordt gestart, ziet u alleen dat de edgeAgent-module wordt uitgevoerd. De edgeAgent-module wordt standaard uitgevoerd en helpt bij het installeren en starten van aanvullende modules die u op uw apparaat implementeert.
Controleer of uw apparaat en modules zijn geïmplementeerd en worden uitgevoerd door de apparaatpagina in Azure Portal te bekijken.
Zodra uw modules zijn geïmplementeerd en uitgevoerd, vermeldt u deze op uw apparaat of virtuele machine met de volgende opdracht:
sudo iotedge list
Offline of specifieke versie-installatie (optioneel)
De stappen in deze sectie zijn bedoeld voor scenario's die niet worden gedekt door de standaardinstallatiestappen. Dit kan omvatten:
- IoT Edge installeren terwijl u offline bent
- Een versie van een releasekandidaat installeren
Gebruik de stappen in deze sectie als u een specifieke versie van de Azure IoT Edge-runtime wilt installeren die niet beschikbaar is via pakketbeheer. De Microsoft-pakketlijst bevat alleen een beperkte set recente versies en de bijbehorende subversies. Deze stappen zijn dus bedoeld voor iedereen die een oudere versie of een kandidaatversie van de release wil installeren.
Als u Ubuntu-snaps gebruikt, kunt u een module downloaden en offline installeren. Zie Snaps downloaden en offline installeren voor meer informatie.
Met behulp van curl-opdrachten kunt u de onderdeelbestanden rechtstreeks vanuit de GitHub-opslagplaats van IoT Edge targeten.
Navigeer naar de Azure IoT Edge-releases en zoek de releaseversie waarop u zich wilt richten.
Vouw de sectie Assets voor die versie uit.
Elke release moet nieuwe bestanden hebben voor IoT Edge en de identiteitsservice. Als u IoT Edge gaat installeren op een offlineapparaat, downloadt u deze bestanden van tevoren. Gebruik anders de volgende opdrachten om deze onderdelen bij te werken.
Zoek het aziot-identity-servicebestand dat overeenkomt met de architectuur van uw IoT Edge-apparaat. Klik met de rechtermuisknop op de bestandskoppeling en kopieer het koppelingsadres.
Gebruik de gekopieerde koppeling in de volgende opdracht om die versie van de identiteitsservice te installeren:
curl -L <identity service link> -o aziot-identity-service.deb && sudo apt-get install ./aziot-identity-service.deb
Zoek het aziot-edge-bestand dat overeenkomt met de architectuur van uw IoT Edge-apparaat. Klik met de rechtermuisknop op de bestandskoppeling en kopieer het koppelingsadres.
Gebruik de gekopieerde koppeling in de volgende opdracht om die versie van IoT Edge te installeren.
curl -L <iotedge link> -o aziot-edge.deb && sudo apt-get install ./aziot-edge.deb
IoT Edge verwijderen
Als u de IoT Edge-installatie van uw apparaat wilt verwijderen, gebruikt u de volgende opdrachten.
De IoT Edge-runtime verwijderen.
sudo apt-get autoremove --purge aziot-edge
Laat de --purge
vlag ongewijzigd als u IoT Edge opnieuw wilt installeren en in de toekomst dezelfde configuratiegegevens wilt gebruiken. Met --purge
de vlag worden alle bestanden verwijderd die zijn gekoppeld aan IoT Edge, inclusief uw configuratiebestanden.
Wanneer de IoT Edge-runtime wordt verwijderd, worden alle containers die worden gemaakt, gestopt, maar nog steeds aanwezig op uw apparaat. Bekijk alle containers om te zien welke containers behouden blijven.
sudo docker ps -a
Verwijder de containers van uw apparaat, inclusief de twee runtimecontainers.
sudo docker rm -f <container ID>
Verwijder ten slotte de containerruntime van uw apparaat.
sudo apt-get autoremove --purge moby-engine
Volgende stappen
Ga door met het implementeren van IoT Edge-modules voor meer informatie over het implementeren van modules op uw apparaat.