Een IoT Edge-apparaat in Linux maken en inrichten met behulp van symmetrische sleutels

Van toepassing op:IoT Edge 1.4 checkmark IoT Edge 1.4

Belangrijk

IoT Edge 1.4 is de ondersteunde release. 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:

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.

  1. Meld u aan bij de Azure-portal en ga naar uw IoT Hub.

  2. Selecteer Apparaten in het menu in het linkerdeelvenster en selecteer Vervolgens Apparaat toevoegen.

  3. 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.
  4. 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:

  1. Selecteer op de pagina Apparaten de ioT Edge-apparaat-id in de lijst.
  2. Kopieer de waarde van de primaire Verbinding maken iontekenreeks of de secundaire Verbinding maken iontekenreeks. 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.

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
    

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 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 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.

  1. Het configuratiebestand van de bestaande Docker-daemon maken of bewerken

    sudo nano /etc/docker/daemon.json
    
  2. Stel het standaardstuurprogramma voor logboekregistratie in op het local logboekregistratiestuurprogramma, zoals wordt weergegeven in het voorbeeld.

       {
          "log-driver": "local"
       }
    
  3. 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.

  1. Pas de configuratiewijzigingen toe.

    sudo iotedge config apply
    
  2. 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:

  1. Selecteer Apparaten in het menu IoT Hub.

  2. Selecteer uw apparaat om de bijbehorende pagina te openen.

  3. Selecteer het tabblad Modules instellen.

  4. 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.

  5. 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.

  1. Controleer of de IoT Edge-systeemservice wordt uitgevoerd.

    sudo iotedge system status
    

    Een geslaagd statusantwoord toont de aziot services als actief of gereed.

  2. Als u problemen met de service moet oplossen, haalt u de servicelogboeken op.

    sudo iotedge system logs
    
  3. 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.

    Screenshot of sample responses from the check command.

    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.

  4. 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.

    Screenshot of IoT Edge modules deployed and running confirmation in the Azure portal.

    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.

Notitie

Als op uw apparaat momenteel IoT Edge versie 1.1 of ouder wordt uitgevoerd, verwijdert u de iotedge - en libiothsm-std-pakketten voordat u de stappen in deze sectie volgt. Zie Update van 1.0 of 1.1 naar de nieuwste versie voor meer informatie.

  1. Navigeer naar de Azure IoT Edge-releases en zoek de releaseversie waarop u zich wilt richten.

  2. Vouw de sectie Assets voor die versie uit.

  3. 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.

    1. 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.

    2. 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
      

    1. 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.

    2. 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.