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

Van toepassing op:ja-pictogram IoT Edge 1.1 Andere versies: IoT Edge 1.2, IoT Edge 1.3

Van toepassing op:IoT Edge 1.2 vinkje IoT Edge 1.2 IoT Edge 1.3 vinkje IoT Edge 1.3 Andere versies:IoT Edge 1.1

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-cloudcommunicatie 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 om te verifiëren bij IoT Hub.

In de stappen in dit artikel wordt een proces beschreven met de naam handmatig inrichten, waarbij u één apparaat verbindt met de 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 in IoT Hub maakt, maakt de service twee sleutels. U plaatst een van de sleutels op het apparaat en geeft de sleutel weer voor IoT Hub 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 vingerafdrukken van beide certificaten op. Wanneer het apparaat wordt geverifieerd bij IoT Hub, wordt er één certificaat weergegeven en IoT Hub controleert 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. Zie X.509-certificaten maken en IoT Edge inrichten op Linux met X.509-certificaten als u X.509-certificaten wilt gebruiken.

Notitie

Als u veel apparaten moet instellen en niet handmatig elk apparaat 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 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 de 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 Azure IoT Edge ondersteunde systemen voor de meest recente informatie over welke besturingssystemen momenteel worden ondersteund voor productiescenario's.

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 waarvoor geen edge is ingeschakeld.

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

  2. Selecteer in het linkerdeelvenster IoT Edge in het menu en selecteer vervolgens Een IoT Edge apparaat toevoegen.

    Schermopname van het toevoegen van een I o T Edge-apparaat vanuit de Azure Portal.

  3. Geef op de pagina Een apparaat maken de volgende informatie op:

    • Maak een beschrijvende apparaat-id. Noteer deze apparaat-id, want u gebruikt deze later.
    • Selecteer Symmetrische sleutel als verificatietype.
    • Gebruik de standaardinstellingen om automatisch verificatiesleutels te genereren en het nieuwe apparaat te verbinden met uw hub.
  4. 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 verbindingsreeksen nodig om de installatie en inrichting van de IoT Edge runtime te voltooien.

Alle edge-apparaten die verbinding maken met uw IoT-hub, worden weergegeven op de pagina IoT Edge.

Schermopname van het weergeven van uw apparaten in de Azure Portal, I o T Hub.

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 ervan in de IoT-hub.

Apparaten die worden geverifieerd met symmetrische sleutels, hebben hun verbindingsreeksen beschikbaar om te kopiëren in de portal.

  1. Klik op de pagina IoT Edge in de portal op de apparaat-id in de lijst met IoT Edge apparaten.
  2. Kopieer de waarde van de primaire verbindingsreeks of secundaire verbindingsreeks.

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

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 stuurprogramma voor logboekregistratie te gebruiken local als het mechanisme voor logboekregistratie. Zie de controlelijst voor productie-implementatie voor meer informatie over de configuratie van logboekregistratie.

  • 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 op om de wijzigingen door te voeren.

    Tip

    Als er fouten optreden bij het installeren van de Moby-containerengine, controleert u uw Linux-kernel op Moby-compatibiliteit. Sommige fabrikanten van ingesloten apparaten verzenden apparaatinstallatiekopieën die aangepaste Linux-kernels bevatten zonder de functies die vereist zijn voor compatibiliteit met container-engine. Voer de volgende opdracht uit, die gebruikmaakt van het controleconfiguratiescript dat wordt geleverd door 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 en Network 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. Op dezelfde manier kunt u, als u een kernelconfiguratiegenerator gebruikt zoals defconfig of menuconfig, de respectieve functies zoeken en inschakelen en uw kernel dienovereenkomstig opnieuw opbouwen. 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 beveiligingsdemon 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, wilt installeren of offline wilt installeren, volgt u de installatiestappen offline of specifieke versie 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 uitvoert, raden we u aan de nieuwste patch te installeren of bij te werken, omdat oudere versies niet meer worden ondersteund.

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.

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 versie op een apparaat met internetverbinding. Als u een specifieke versie, zoals een voorlopige versie, wilt installeren of offline wilt installeren, volgt u de stappen voor offline of specifieke versie-installatie verderop in dit artikel.

Notitie

In de stappen in deze sectie ziet u hoe u de meest recente IoT Edge versie installeert.

Als u al een IoT Edge apparaat hebt waarop een oudere versie wordt uitgevoerd en u wilt upgraden naar de nieuwste versie, gebruikt u de stappen in Update the IoT Edge security daemon and runtime. 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 Service-pakket:

sudo apt-get update; \
  sudo apt-get install aziot-edge defender-iot-micro-agent-edge

Het defender-iot-micro-agent-edge-pakket bevat de microsoft Defender for IoT-beveiligingsmicroagent die inzicht biedt in beveiligingspostuurbeheer, beveiligingsproblemen, detectie van bedreigingen, vlootbeheer 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 for IoT.

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, namelijk het instellen van het apparaat met de cloudidentiteit 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 connection string, als deze nog niet wordt aanbevolen.

# 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 andere inrichtingssecties als commentaar worden weergegeven. Zorg ervoor dat de inrichting: regel heeft geen voorafgaande witruimte en dat geneste items worden ingesprongen door twee spaties.

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.

CTRL + X, Y, Enter

Nadat u de inrichtingsgegevens in het configuratiebestand hebt ingevoerd, start u de daemon opnieuw op:

sudo systemctl restart iotedge

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 de iotedge config mp opdracht maakt u een configuratiebestand op het apparaat en voert u uw connection string in het bestand in.

Pas de configuratiewijzigingen toe.

sudo iotedge config apply

Als u het configuratiebestand wilt zien, kunt u het openen:

sudo nano /etc/aziot/config.toml

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
sudo iotedge system status

Een geslaagd statusantwoord is Ok.

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

journalctl -u iotedge
sudo iotedge system logs

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

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 de 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 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 Microsoft-pakketlijst bevat alleen een beperkte set recente versies en hun subversies, dus deze stappen zijn bedoeld voor iedereen die een oudere versie of een kandidaat-versie van de release wil installeren.

Met behulp van curl-opdrachten kunt u de onderdeelbestanden rechtstreeks vanuit de IoT Edge GitHub-opslagplaats richten.

  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 de IoT Edge beveiligingsdemon en de hsmlib. Als u IoT Edge op een offlineapparaat gaat installeren, downloadt u deze bestanden van tevoren. Gebruik anders de volgende opdrachten om deze onderdelen bij te werken.

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

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

    4. Gebruik de gekopieerde koppeling in de volgende opdracht om die versie van de IoT Edge beveiligingsdemon te installeren.

      curl -L iotedge_link_here -o iotedge.deb && sudo apt-get install ./iotedge.deb
      

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 op een offlineapparaat gaat installeren, 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
      
    3. 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.

    4. 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 iotedge
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 --purge de vlaggen worden alle bestanden verwijderd die zijn gekoppeld aan IoT Edge, inclusief uw configuratiebestanden.

Wanneer de IoT Edge runtime wordt verwijderd, worden alle gemaakte containers gestopt, maar nog steeds aanwezig op uw apparaat. Bekijk alle containers om te zien welke blijven bestaan.

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