Een apparaat voor IoT Edge linux maken en inrichten met behulp van symmetrische sleutels

Van toepassing op:  Ja pictogram IoT Edge 1,1 andere versies: IOT Edge 1,2

Van toepassing op:  Ja pictogram IoT Edge 1,2 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 voor het bijhouden van cloud-naar-apparaat- of apparaat-naar-cloud-communicatie. U configureert een apparaat met de verbindingsgegevens, waaronder de hostnaam van de IoT-hub, de apparaat-id en de informatie die het apparaat gebruikt om te verifiëren IoT Hub.

De stappen in dit artikel doorlopen een proces met de naam handmatige inrichting, waarbij u één apparaat verbindt met de IoT-hub. Voor handmatige inrichting hebt u twee opties voor het IoT Edge apparaten:

  • Symmetrische sleutels: wanneer u een nieuwe apparaat-id maakt in IoT Hub, maakt de service twee sleutels. U kunt een van de sleutels op het apparaat plaatsen en de sleutel wordt aan IoT Hub tijdens de authenticatie.

    Deze verificatiemethode is sneller om aan de slag te gaan, maar niet zo veilig.

  • X.509 zelf-ondertekend: u maakt twee X.509-identiteitscertificaten en plaats deze op het apparaat. Wanneer u een nieuwe apparaat-id in IoT Hub, geeft u de vingerafdruk van beide certificaten op. Wanneer het apparaat wordt geverifieerd voor IoT Hub, wordt er één certificaat IoT Hub controleert 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. Zie Create and provision an IoT Edge device on Linux using X.509 certificates (Een IoT Edge-apparaat in Linux maken en inrichten met behulp van X.509-certificaten) als u X.509-certificaten wilt gebruiken.

Notitie

Als u veel apparaten moet instellen en deze 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 IoT Edge apparaat registreert en IoT Edge installeert. Deze taken hebben verschillende vereisten en hulpprogramma's die worden gebruikt om ze te bereiken. Zorg ervoor dat alle vereisten zijn gedekt voordat u doorgaat.

Hulpprogramma’s voor apparaatbeheer

U kunt de stappen 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.

IoT Edge installeren

Een X64-, ARM32- of ARM64 Linux-apparaat.

Microsoft biedt installatiepakketten voor Ubuntu Server 18.04- en Raspberry Pi OS Stretch-besturingssystemen.

Zie Voor de meest recente informatie over welke besturingssystemen momenteel worden ondersteund voor productiescenario's, Azure IoT Edge ondersteunde systemen.

Notitie

Ondersteuning voor ARM64-apparaten is beschikbaar als openbare preview.

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 gemaakt en beheerd, afzonderlijk van IoT-apparaten die niet aan de rand zijn 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 apparaat IoT Edge toevoegen.

    Een apparaat IoT Edge toevoegen vanuit het 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 gaat deze later gebruiken.
    • 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 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 te voltooien.

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

Gebruik de Azure Portal om alle IoT Edge in uw IoT-hub weer te zien

Wanneer u klaar bent om uw apparaat in te stellen, hebt u de connection string die uw fysieke apparaat koppelt 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 IoT Edge pagina in de portal op de apparaat-id in de lijst IoT Edge apparaten.
  2. Kopieer de waarde van primaire verbindingsreeks of secundaire verbindingsreeks.

Installatie IoT Edge

In deze sectie bereidt u uw Linux-VM of fysiek apparaat voor op IoT Edge. Vervolgens installeert u IoT Edge.

U moet twee stappen op uw apparaat uitvoeren voordat het klaar is om de IoT Edge installeren. Uw apparaat moet toegang hebben tot de Microsoft-installatiepakketten en er moet een container-engine zijn geïnstalleerd.

Toegang tot de Microsoft-installatiepakketten

  1. Download het configuratiepakket voor de opslagplaats dat overeenkomt met het besturingssysteem van uw apparaat.

    • Ubuntu Server 18.04:

      curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/packages-microsoft-prod.deb > ./packages-microsoft-prod.deb
      
    • Raspberry Pi OS Stretch:

      curl https://packages.microsoft.com/config/debian/stretch/multiarch/packages-microsoft-prod.deb > ./packages-microsoft-prod.deb
      
  2. Installeer het configuratiepakket om de pakketopslagplaats en openbare GPG-sleutel van Microsoft toe te voegen.

    sudo apt install ./packages-microsoft-prod.deb
    

Notitie

Azure IoT Edge zijn onderworpen aan de licentievoorwaarden in elk pakket ( usr/share/doc/{package-name} of de LICENSE map). Lees de licentievoorwaarden voordat u een pakket gebruikt. Uw installatie en gebruik van een pakket vormt uw acceptatie van deze voorwaarden. Als u niet akkoord gaat met de licentievoorwaarden, moet u dat pakket niet gebruiken.

Een container-engine installeren

Azure IoT Edge is afhankelijk van een met OCI compatibele containerruntime. Voor productiescenario's raden we u aan de Moby-engine te gebruiken. De Moby-engine is de enige container-engine die officieel wordt ondersteund IoT Edge. Docker CE/EE container-afbeeldingen zijn compatibel met de Moby-runtime.

  1. Pakketlijsten bijwerken op uw apparaat.

    sudo apt-get update
    
  2. Installeer de Moby-engine.

    sudo apt-get install moby-engine
    

    Tip

    Als er fouten optreden wanneer u de Moby-container-engine installeert, controleert u of uw Linux-kernel compatibel is met Moby. Sommige fabrikanten van ingesloten apparaten verzenden apparaatafbeeldingen die aangepaste Linux-kernels bevatten zonder de functies die vereist zijn voor compatibiliteit met de container-engine. Voer de volgende opdracht uit, die gebruikmaakt van het check-config-script 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 en Network Drivers zijn ingeschakeld. Als er functies ontbreken, kunt u deze inschakelen door de kernel opnieuw 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 zoals of gebruikt, de respectieve functies zoeken en inschakelen en de defconfig menuconfig kernel dienovereenkomstig herbouwen. Nadat u de zojuist gewijzigde kernel hebt geïmplementeerd, moet u het script check-config opnieuw uitvoeren om te controleren of alle vereiste functies zijn ingeschakeld.

De IoT Edge-runtime installeren

De IoT Edge-daemon biedt en onderhoudt beveiligingsstandaarden op IoT Edge apparaat. De daemon wordt gestart bij elke keer opstarten en bootstrapt het apparaat door de rest van de IoT Edge starten.

De stappen in deze sectie vertegenwoordigen het gebruikelijke proces voor het installeren van de nieuwste versie op een apparaat met een internetverbinding. Als u een specifieke versie wilt installeren, zoals een voorlopige versie, of offline wilt installeren, volgt u de stappen voor offline of specifieke versie-installatie verder in dit artikel.

Pakketlijsten bijwerken op uw apparaat.

sudo apt-get update

Installeer IoT Edge versie 1.1.* samen met het libiothsm-std-pakket:

sudo apt-get install iotedge

Notitie

IoT Edge versie 1.1 is de vertakking voor langetermijnondersteuning van IoT Edge. Als u een oudere versie hebt, raden we u aan om 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 IoT Edge apparaat. De service start bij elke keer opstarten en start het apparaat op door de rest van de IoT Edge starten.

De IoT-identiteitsservice is geïntroduceerd samen met versie 1.2 van IoT Edge. Deze service verwerkt het inrichten en beheren van identiteiten 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 een internetverbinding. Als u een specifieke versie wilt installeren, zoals een voorlopige versie, of offline wilt installeren, volgt u de stappen voor offline of specifieke versie-installatie verder in dit artikel.

Notitie

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

Als u al een IoT Edge-apparaat met een oudere versie hebt en wilt upgraden naar 1.2, gebruikt u de stappen in De IoT Edge-beveiligingsdemonen runtime bijwerken. Versie 1.2 verschilt voldoende van eerdere versies van IoT Edge dat specifieke stappen nodig zijn om een upgrade uit te voeren.

Pakketlijsten bijwerken op uw apparaat.

sudo apt-get update

Controleer welke versies van de IoT Edge en de IoT-identiteitsservice beschikbaar zijn.

apt list -a aziot-edge aziot-identity-service

Als u de nieuwste versie van IoT Edge en het IoT Identity Service-pakket wilt installeren, gebruikt u de volgende opdracht:

sudo apt-get install aziot-edge

Het apparaat inrichten met de cloudidentiteit

Nu de container-engine en de IoT Edge-runtime op uw apparaat zijn geïnstalleerd, bent u klaar voor de volgende stap: het apparaat instellen met de cloudidentiteit en verificatiegegevens.

Open op IoT Edge apparaat het configuratiebestand.

sudo nano /etc/iotedge/config.yaml

Zoek de inrichtingsconfiguraties van het bestand en vraag de sectie Handmatige inrichting op met behulp van een connection string als dit nog niet is becommenteerd.

# 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 worden becommentreerd. Zorg ervoor dat de inrichtingsregel: geen voorgaande 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.

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 apparaat snel IoT Edge met symmetrische-sleutelverificatie met behulp van de volgende opdracht:

sudo iotedge config mp --connection-string 'PASTE_DEVICE_CONNECTION_STRING_HERE'

Met iotedge config mp de 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

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

sudo systemctl status iotedge
sudo iotedge system status

Een geslaagd statusreactie is Ok .

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

journalctl -u iotedge
sudo iotedge system logs

Gebruik het check hulpprogramma om de configuratie en verbindingsstatus van het apparaat te controleren.

sudo iotedge check

Tip

Gebruik altijd sudo om het controleprogramma uit te voeren, zelfs nadat uw machtigingen zijn bijgewerkt. Het hulpprogramma heeft verhoogde bevoegdheden nodig voor toegang 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, wordt alleen de edgeAgent-module 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 apparaat IoT Edge, 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 om een module-implementatie te ontvangen.

Offline of specifieke versie-installatie (optioneel)

De stappen in deze sectie zijn voor scenario's die niet worden gedekt door de standaardinstallatiestappen. Dit kan het volgende omvatten:

  • Installatie van IoT Edge offline
  • 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 apt-get install . De Microsoft-pakketlijst bevat slechts een beperkte set recente versies en de subversies, dus deze stappen zijn voor iedereen die een oudere versie of een versie van een releasekandidaat wil installeren.

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

  1. Navigeer naar Azure IoT Edge releasesen zoek de releaseversie die u wilt targeten.

  2. Vouw de sectie Assets voor die versie uit.

  3. Elke release moet nieuwe bestanden bevatten voor de IoT Edge-beveiligings-daemon en de hsmlib. Als u een app wilt installeren IoT Edge een offline apparaat, downloadt u deze bestanden van tevoren. Gebruik anders de volgende opdrachten om deze onderdelen bij te werken.

    1. Zoek het bestand libiothsm-std dat overeenkomt met IoT Edge architectuur van uw 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 hsmlib te installeren:

      curl -L libiothsm-std_link_here -o libiothsm-std.deb && sudo apt-get install ./libiothsm-std.deb
      
    3. Zoek het iotedge-bestand dat overeenkomt met IoT Edge architectuur van uw 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-daemon 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 from 1.0 or 1.1 to 1.2 (Bijwerken van 1.0 of 1.1 naar 1.2) voor meer informatie.

  1. Navigeer naar Azure IoT Edge releasesen zoek de releaseversie die u wilt targeten.

  2. Vouw de sectie Assets voor die versie uit.

  3. Elke release moet nieuwe bestanden voor IoT Edge en de identiteitsservice bevatten. Als u een app wilt installeren IoT Edge een offline apparaat, downloadt u deze bestanden van tevoren. Gebruik anders de volgende opdrachten om deze onderdelen bij te werken.

    1. Zoek het bestand aziot-identity-service dat overeenkomt met IoT Edge architectuur van uw 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 bestand aziot-edge dat overeenkomt met IoT Edge architectuur van uw 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.

      curl -L <iotedge link> -o aziot-edge.deb && sudo apt-get install ./aziot-edge.deb
      

Nu de container-engine en de IoT Edge-runtime op uw apparaat zijn geïnstalleerd, bent u klaar voor de volgende stap: Het apparaat inrichten met de cloudidentiteit.

Uninstall IoT Edge

Als u de installatie van IoT Edge apparaat wilt verwijderen, gebruikt u de volgende opdrachten.

De IoT Edge-runtime verwijderen.

sudo apt-get remove iotedge
sudo apt-get remove aziot-edge

Gebruik de vlag als u alle bestanden wilt verwijderen die zijn gekoppeld aan --purge IoT Edge, inclusief uw configuratiebestanden. Laat deze vlag weg als u deze opnieuw wilt IoT Edge en in de toekomst dezelfde configuratiegegevens wilt gebruiken.

Wanneer de IoT Edge runtime wordt verwijderd, worden alle gemaakte containers gestopt, maar nog steeds aanwezig op uw apparaat. Alles weergeven containers om te zien welke 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 container-runtime van uw apparaat.

sudo apt-get remove --purge moby-cli
sudo apt-get remove --purge moby-engine

Volgende stappen

Ga door met het IoT Edge modules voor meer informatie over het implementeren van modules op uw apparaat.