Een IoT Edge-apparaat in Linux maken en inrichten met behulp van symmetrische sleutels
Van toepassing op: IoT Edge 1.4
Dit artikel bevat end-to-end-instructies voor het registreren en inrichten van een Linux-IoT Edge-apparaat, waaronder het installeren van IoT Edge.
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
- Verificatiedetails 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 Bijbehorende IoT-hub. Voor handmatig inrichten hebt u twee opties voor het verifiëren van IoT Edge apparaten:
Symmetrische sleutels: wanneer u een nieuwe apparaat-id maakt in IoT Hub, worden er twee sleutels gemaakt. U plaatst een van de sleutels op het apparaat en de sleutel wordt weergegeven voor IoT Hub tijdens de verificatie.
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 maakt in IoT Hub, geeft u vingerafdrukken van beide certificaten op. Wanneer het apparaat wordt geverifieerd bij IoT Hub, wordt één certificaat weergegeven en wordt IoT Hub gecontroleerd of het certificaat overeenkomt met de vingerafdruk.
Deze verificatiemethode is veiliger en wordt aanbevolen voor productiescenario's.
In dit artikel wordt het gebruik van symmetrische sleutels als verificatiemethode beschreven. Als u X.509-certificaten wilt gebruiken, raadpleegt u Een IoT Edge-apparaat in Linux maken en inrichten met behulp van X.509-certificaten.
Notitie
Als u veel apparaten moet instellen en u ze niet handmatig wilt inrichten, gebruikt u een van de volgende artikelen om te leren hoe IoT Edge werkt met de IoT Hub device provisioning service:
Vereisten
In dit artikel wordt beschreven hoe u uw IoT Edge-apparaat registreert en IoT Edge (ook wel IoT Edge runtime genoemd) op uw apparaat installeert. Zorg ervoor dat u beschikt over het hulpprogramma voor apparaatbeheer van uw keuze, bijvoorbeeld Azure CLI, en de apparaatvereisten voordat u uw apparaat registreert en installeert.
Hulpprogramma’s voor apparaatbeheer
U kunt de Azure Portal, Visual Studio Code of Azure CLI gebruiken voor de stappen 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 Azure IoT Edge ondersteunde systemen 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 handige Azure IoT-extensies die het maken en beheren van het apparaat eenvoudiger maken.
Installeer zowel de Azure IoT Edge- als Azure IoT Hub-extensies:
Uw apparaat registreren
U kunt de Azure Portal, Visual Studio Code of Azure CLI gebruiken om uw apparaat te registreren, afhankelijk van uw voorkeur.
In uw IoT-hub in de 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 in het linkerdeelvenster Apparaten in het menu 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
(allemaal kleine letters). Kopieer deze apparaat-id, want u gebruikt deze later. - 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.
Uw nieuwe apparaat wordt nu weergegeven in uw IoT-hub.
Nu u een apparaat hebt geregistreerd in IoT Hub, kunt u 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 verbindingsreeksen nodig om de installatie en inrichting van de IoT Edge runtime te voltooien. De connection string wordt gegenereerd voor uw IoT Edge apparaat wanneer u het apparaat maakt. Voor Visual Studio Code en Azure CLI bevindt de connection string zich in de JSON-uitvoer. Als u de Azure Portal gebruikt om uw apparaat te maken, kunt u de connection string van het apparaat zelf vinden. Wanneer u uw apparaat selecteert in uw IoT-hub, wordt dit 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 connection string nodig waarmee uw fysieke apparaat wordt gekoppeld aan de identiteit in de IoT-hub. Apparaten die worden geverifieerd met symmetrische sleutels, kunnen de verbindingsreeksen in de portal kopiëren. Uw connection string vinden in de portal:
- Selecteer op de pagina Apparaten de IoT Edge apparaat-id in de lijst.
- Kopieer de waarde van primaire verbindingsreeks of secundaire verbindingsreeks. Beide sleutels werken.
IoT Edge installeren
In deze sectie bereidt u uw virtuele Linux-machine of fysieke 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 Microsoft-pakketondertekeningssleutel toe aan uw lijst met vertrouwde sleutels.
Belangrijk
Op 30 juni 2022 is Raspberry Pi OS Stretch buiten gebruik gesteld van de laag 1 os-ondersteuningslijst. Werk uw hostbesturingssysteem bij naar Bullseye om potentiële beveiligingsproblemen te voorkomen.
De installatie kan worden uitgevoerd met een paar opdrachten. Open een terminal en voer de volgende opdrachten uit:
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
18.04:
wget https://packages.microsoft.com/config/ubuntu/18.04/multiarch/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb
Zie Azure IoT Edge ondersteunde platformen 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 gebruik van een pakket houdt in dat u akkoord gaat met 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 containerruntime die compatibel is met OCI. Voor productiescenario's raden we u aan de Moby-engine te gebruiken. De Moby-engine is de enige containerengine die officieel wordt ondersteund met IoT Edge. Docker CE/EE-containerinstallatiekopieën zijn compatibel met de Moby-runtime.
Installeer de Moby-engine.
sudo apt-get update; \
sudo apt-get install moby-engine
De Moby-containerengine stelt standaard geen limieten in voor de grootte van het containerlogboek. 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 het lokaal wordt weergegeven, maar dit is optioneel. Zie Controlelijst voor productie-implementatie voor meer informatie over configuratie van logboekregistratie.
In de volgende stappen ziet u hoe u uw container configureert voor het gebruik van local
het logboekregistratiestuurprogramma als mechanisme voor logboekregistratie.
Maak (als het bestand er nog niet is) of open het configuratiebestand van de Docker-daemon op
/etc/docker/daemon.json
.Stel het standaardstuurprogramma voor logboekregistratie in op het
local
logboekregistratiestuurprogramma, zoals wordt weergegeven in het onderstaande voorbeeld.{ "log-driver": "local" }
Start de containerengine opnieuw op om de wijzigingen door te voeren.
sudo systemctl restart docker
Tip
Als er fouten optreden wanneer u de Moby-containerengine installeert, controleert u of uw Linux-kernel compatibel is met Moby. Sommige fabrikanten van ingesloten apparaten verzenden apparaatinstallatiekopieën die aangepaste Linux-kernels bevatten zonder de functies die vereist zijn voor compatibiliteit met containerengines. Voer de volgende opdracht uit, die gebruikmaakt van het configuratiescript check-config van Moby, om uw kernelconfiguratie te controleren:
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
Controleer in de uitvoer van het script of alle items onder
Generally Necessary
enNetwork Drivers
zijn ingeschakeld. Als u functies mist, schakelt u deze in door uw kernel opnieuw op te bouwen vanuit de bron en de bijbehorende modules te selecteren voor opname in de juiste kernel .config. Als u een kernelconfiguratiegenerator zoalsdefconfig
ofmenuconfig
gebruikt, zoekt en schakelt u de betreffende functies in en bouwt u de kernel dienovereenkomstig opnieuw op. Nadat u de zojuist gewijzigde kernel hebt geïmplementeerd, voert u het controleconfiguratiescript opnieuw uit om te controleren of alle vereiste functies zijn ingeschakeld.
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 meest recente IoT Edge versie op een apparaat met een internetverbinding. Als u een specifieke versie moet installeren, zoals een voorlopige versie, of offline wilt installeren, volgt u de installatiestappen offline of specifieke versies verderop in dit artikel.
Tip
Als u al een IoT Edge apparaat hebt waarop een oudere versie wordt uitgevoerd en u wilt upgraden naar de nieuwste release, gebruikt u de stappen in De IoT Edge beveiligingsdaemon en runtime bijwerken. Latere versies verschillen voldoende van eerdere versies van IoT Edge dat er specifieke stappen nodig zijn om een upgrade uit te voeren.
Installeer de nieuwste versie van IoT Edge en het IoT Identity-servicepakket (als u nog niet up-to-date bent):
22.04:
sudo apt-get update; \ sudo apt-get install aziot-edge
20.04 of 18.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 Microsoft Defender voor IoT-beveiligingsmicroagent die eindpunten inzicht biedt in beveiligingspostuurbeheer, beveiligingsproblemen, detectie van bedreigingen, fleetbeheer en meer om u te helpen uw IoT Edge apparaten te beveiligen. Het wordt aanbevolen 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 bijbehorende cloudidentiteit
Nu de containerengine en de IoT Edge runtime op uw apparaat zijn geïnstalleerd, kunt u het apparaat instellen met de cloudidentiteit en verificatiegegevens.
U kunt uw IoT Edge-apparaat snel 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 connection string 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 de 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 IoT Edge standaardmodules (edgeAgent en edgeHub) willen implementeren, hoeven we geen modules aan dit deelvenster toe te voegen. Selecteer daarom 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.
Controleren of de configuratie is geslaagd
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 geeft aan dat de
aziot
services actief of gereed zijn.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 bereik van antwoorden verwachten die OK (groen), Waarschuwing (geel) of Fout (rood) kunnen bevatten.
Tip
Gebruik
sudo
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 controleren.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 in het hostbestandssysteem - Foutkan de huidige status van de edgeHub-container niet controleren
Deze fout wordt verwacht op een nieuw ingerichte apparaat omdat de module IoT Edge Hub nog niet wordt uitgevoerd. Zorg ervoor dat uw IoT Edge-modules in de vorige stappen zijn geïmplementeerd. Implementatie lost deze fout op.
U kunt ook een statuscode zien als
417 -- The device's deployment configuration is not set
. Zodra uw modules zijn geïmplementeerd, verandert deze status.Wanneer de service voor de eerste keer wordt gestart, ziet u dat alleen 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 pagina van uw apparaat te bekijken in de Azure Portal.
Zodra uw modules zijn geïmplementeerd en uitgevoerd, vermeldt u ze 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 voor scenario's die niet worden behandeld in de standaardinstallatiestappen. Dit kan het volgende 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 uw pakketbeheer. De lijst met Microsoft-pakketten bevat slechts een beperkte set recente versies en de bijbehorende subversies, dus deze stappen zijn bedoeld voor iedereen die een oudere versie of een release-kandidaatversie wil installeren.
Met behulp van curl-opdrachten kunt u de onderdeelbestanden rechtstreeks vanuit de IoT Edge GitHub-opslagplaats richten.
Notitie
Als op uw apparaat momenteel IoT Edge versie 1.1 of ouder wordt uitgevoerd, verwijdert u de pakketten iotedge en libiothsm-std voordat u de stappen in deze sectie uitvoert. Zie Update van 1.0 of 1.1 naar de nieuwste release voor meer informatie.
Navigeer naar de Azure IoT Edge-releases en zoek de releaseversie die u wilt gebruiken.
Vouw de sectie Assets voor die versie uit.
Elke release moet nieuwe bestanden bevatten voor IoT Edge en de identiteitsservice. Als u IoT Edge wilt installeren op een offlineapparaat, downloadt u deze bestanden van tevoren. Gebruik anders de volgende opdrachten om deze onderdelen bij te werken.
Zoek het bestand aziot-identity-service dat overeenkomt met de architectuur van uw IoT Edge apparaat. Klik met de rechtermuisknop op de bestandskoppeling en kopieer het adres van de koppeling.
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 adres van de koppeling.
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
Nu de containerengine en de IoT Edge runtime op uw apparaat zijn geïnstalleerd, bent u klaar voor de volgende stap, namelijk het inrichten van het apparaat met de cloudidentiteit.
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 weg als u van plan bent om IoT Edge opnieuw te installeren en in de toekomst dezelfde configuratiegegevens te gebruiken. Met de --purge
vlaggen worden alle bestanden verwijderd die zijn gekoppeld aan IoT Edge, inclusief uw configuratiebestanden.
Wanneer de IoT Edge runtime wordt verwijderd, worden alle containers die zijn gemaakt, gestopt, maar bestaan ze nog steeds op uw apparaat. Bekijk alle containers om te zien welke nog overblijven.
sudo docker ps -a
Verwijder de containers van uw apparaat, inclusief de twee runtimecontainers.
sudo docker rm -f <container name>
Verwijder ten slotte de containerruntime van uw apparaat.
sudo apt-get autoremove --purge moby-engine