Een IoT Edge-apparaat in Linux maken en inrichten met behulp van symmetrische sleutels
Van toepassing op: IoT Edge 1.1
Belangrijk
Het einde van de ondersteuningsdatum voor IoT Edge 1.1 is 13 december 2022. Raadpleeg het levenscyclusbeleid van Microsoft voor informatie over hoe dit product of deze service, technologie of API wordt ondersteund. Zie IoT Edge bijwerken voor meer informatie over het bijwerken naar de nieuwste versie van IoT Edge.
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 om cloud-naar-apparaat- of apparaat-naar-cloud-communicatie bij te houden. U configureert een apparaat met de bijbehorende verbindingsgegevens, waaronder de hostnaam van de IoT-hub, de apparaat-id en de informatie die het apparaat gebruikt voor verificatie bij 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 erop installeert. Deze taken hebben verschillende vereisten en hulpprogramma's die worden gebruikt om ze te bereiken. Zorg ervoor dat aan alle vereisten wordt voldaan voordat u doorgaat.
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:
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.
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. Noteer deze apparaat-id, omdat u deze later gaat gebruiken.
- Schakel het selectievakje IoT Edge-apparaat in.
- Selecteer symmetrische sleutel als verificatietype.
- Gebruik de standaardinstellingen om verificatiesleutels automatisch te genereren en het nieuwe apparaat te verbinden met uw hub.
Selecteer Opslaan.
Nu u een apparaat hebt geregistreerd in IoT Hub, haalt u de informatie op die u gebruikt om de installatie en inrichting van de IoT Edge-runtime 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 edge-apparaten die verbinding maken met uw IoT-hub, worden weergegeven op de pagina Apparaten . U kunt de lijst filteren op type IoT Edge-apparaat.
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.
- Selecteer op de pagina Apparaten in de portal de ioT Edge-apparaat-id in de lijst.
- Kopieer de waarde van de primaire verbindingsreeks of secundaire verbindingsreeks.
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.
Installatie kan worden uitgevoerd met een paar opdrachten. Open een terminal en voer de volgende opdrachten uit:
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
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 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
Zodra de Moby-engine is geïnstalleerd, configureert u deze om het logboekregistratiestuurprogramma te gebruiken local
als het mechanisme voor logboekregistratie. Zie controlelijst voor productie-implementatie voor meer informatie over logboekregistratieconfiguratie.
Maak 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 om de wijzigingen van kracht te laten worden.
sudo systemctl restart docker
Tip
Als er fouten optreden bij het installeren van de Moby-containerengine, controleert u de Linux-kernel voor Moby-compatibiliteit. 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 check-config-script van Moby, om de 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 de kernel opnieuw op te bouwen vanuit de bron en de bijbehorende modules te selecteren voor opname in de juiste kernel .config. Als u ook een kernelconfiguratiegenerator gebruikt zoalsdefconfig
ofmenuconfig
, 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-beveiligingsdaemon biedt en onderhoudt beveiligingsstandaarden op het IoT Edge-apparaat. De daemon wordt gestart bij elke opstartbewerking en bootstrapt het apparaat door de rest van de IoT Edge-runtime te starten.
De stappen in deze sectie vertegenwoordigen het gebruikelijke proces voor het installeren van de nieuwste 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.
Installeer IoT Edge versie 1.1.* samen met het libiothsm-std-pakket :
sudo apt-get update; \
sudo apt-get install iotedge
Notitie
IoT Edge versie 1.1 is de langetermijnondersteuningsvertakking van IoT Edge. Als u een oudere versie gebruikt, raden we u aan de nieuwste patch te installeren of bij te werken, omdat oudere versies niet meer worden ondersteund.
Het apparaat inrichten met de cloudidentiteit
Nu de containerengine en de IoT Edge-runtime op uw apparaat zijn geïnstalleerd, bent u klaar voor de volgende stap. Dit is het instellen van het apparaat met de cloudidentiteits- en verificatiegegevens.
Open het configuratiebestand op het IoT Edge-apparaat.
sudo nano /etc/iotedge/config.yaml
Zoek de inrichtingsconfiguraties van het bestand en verwijder opmerkingen bij de configuratie voor handmatige inrichting met behulp van een sectie verbindingsreeks, als deze nog niet is toegevoegd.
# Manual provisioning configuration using a connection string
provisioning:
source: "manual"
device_connection_string: "ADD_DEVICE_CONNECTION_STRING_HERE"
Werk de waarde van device_connection_string bij met de verbindingsreeks van uw IoT Edge-apparaat. Zorg ervoor dat eventuele andere inrichtingssecties worden uitgecommentarieerd. Zorg ervoor dat de inrichting van de regel geen voorafgaande witruimte heeft en dat geneste items door twee spaties worden ingesprongen.
Als u de inhoud van het klembord in Nano wilt plakken gebruikt u Shift+Right Click
of drukt u op Shift+Insert
.
Sla het bestand op en sluit het bestand.
CTRL + X
, , Y
Enter
Nadat u de inrichtingsgegevens in het configuratiebestand hebt ingevoerd, start u de daemon opnieuw op:
sudo systemctl restart iotedge
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 systemctl status iotedge
Als u problemen met de service moet oplossen, haalt u de servicelogboeken op.
journalctl -u iotedge
Gebruik het hulpprogramma om de check
configuratie- en verbindingsstatus van het apparaat te controleren.
sudo iotedge check
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 in het hostbestandssysteem - Fout
Kan de huidige status van de EdgeHub-container niet controleren
Deze fout wordt verwacht op een nieuw ingericht apparaat omdat de IoT Edge Hub-module niet wordt uitgevoerd. Als u de fout wilt oplossen, stelt u in IoT Hub de modules voor het apparaat in en maakt u een implementatie. Als u een implementatie voor het apparaat maakt, worden de modules op het apparaat gestart, inclusief de IoT Edge Hub-module.
Bekijk alle modules die op uw IoT Edge-apparaat worden uitgevoerd. 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.
sudo iotedge list
Wanneer u een nieuw IoT Edge-apparaat maakt, wordt de statuscode 417 -- The device's deployment configuration is not set
weergegeven in Azure Portal. Deze status is normaal en betekent dat het apparaat gereed is voor het ontvangen van een module-implementatie.
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.
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 de IoT Edge-beveiligingsdaemon en de hsmlib. 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 libiothsm-std-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 hsmlib te installeren:
curl -L <libiothsm-std_link> -o libiothsm-std.deb && sudo apt-get install ./libiothsm-std.deb
Zoek het iotedge-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 de IoT Edge-beveiligingsdaemon te installeren.
curl -L iotedge_link_here -o iotedge.deb && sudo apt-get install ./iotedge.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 iotedge
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 name>
Verwijder ten slotte de containerruntime van uw apparaat.
sudo apt-get autoremove --purge moby-engine