Skapa och etablera en IoT Edge-enhet i Linux med symmetriska nycklar
Gäller för: IoT Edge 1.5 IoT Edge 1.4
Viktigt!
IoT Edge 1.5 LTS och IoT Edge 1.4 LTS stöds. IoT Edge 1.4 LTS upphör den 12 november 2024. Om du har en tidigare version läser du Uppdatera IoT Edge.
Den här artikeln innehåller instruktioner från slutpunkt till slutpunkt för registrering och etablering av en Linux IoT Edge-enhet som omfattar installation av IoT Edge.
Varje enhet som ansluter till en IoT-hubb har ett enhets-ID som används för att spåra kommunikation från moln till enhet eller från enhet till moln . Du konfigurerar en enhet med dess anslutningsinformation, som omfattar:
- Värdnamn för IoT Hub
- Enhets-ID
- Autentiseringsinformation för att ansluta till IoT Hub
Stegen i den här artikeln går igenom en process som kallas manuell etablering, där du ansluter en enda enhet till dess IoT-hubb. För manuell etablering har du två alternativ för att autentisera IoT Edge-enheter:
Symmetriska nycklar: När du skapar en ny enhetsidentitet i IoT Hub skapar tjänsten två nycklar. Du placerar en av nycklarna på enheten och den visar nyckeln till IoT Hub när du autentiserar.
Den här autentiseringsmetoden går snabbare att komma igång, men inte lika säker.
X.509 självsignerade: Du skapar två X.509-identitetscertifikat och placerar dem på enheten. När du skapar en ny enhetsidentitet i IoT Hub anger du tumavtryck från båda certifikaten. När enheten autentiseras till IoT Hub visas ett certifikat och IoT Hub verifierar att certifikatet matchar tumavtrycket.
Den här autentiseringsmetoden är säkrare och rekommenderas för produktionsscenarier.
Den här artikeln beskriver hur du använder symmetriska nycklar som autentiseringsmetod. Om du vill använda X.509-certifikat kan du läsa Skapa och etablera en IoT Edge-enhet i Linux med X.509-certifikat.
Kommentar
Om du har många enheter att konfigurera och inte vill etablera var och en manuellt använder du någon av följande artiklar för att lära dig hur IoT Edge fungerar med IoT Hub-enhetsetableringstjänsten:
Förutsättningar
Den här artikeln visar hur du registrerar din IoT Edge-enhet och installerar IoT Edge (kallas även IoT Edge-körning) på enheten. Kontrollera att du har valfritt verktyg för enhetshantering, till exempel Azure CLI och enhetskrav innan du registrerar och installerar enheten.
Verktyg för enhetshantering
Du kan använda Azure Portal, Visual Studio Code eller Azure CLI för stegen för att registrera din enhet. Varje verktyg har sina egna förutsättningar eller kan behöva installeras:
Enhetskrav
En X64-, ARM32- eller ARM64 Linux-enhet.
Microsoft publicerar installationspaket för en mängd olika operativsystem.
Den senaste informationen om vilka operativsystem som för närvarande stöds för produktionsscenarier finns i System som stöds av Azure IoT Edge.
Visual Studio Code-tillägg
Om du använder Visual Studio Code finns det användbara Azure IoT-tillägg som gör det enklare att skapa och hantera enheter.
Installera både Azure IoT Edge- och Azure IoT Hub-tilläggen:
Azure IoT Edge. Azure IoT Edge-verktygen för Visual Studio Code-tillägget är i underhållsläge.
Registrera din enhet
Du kan använda Azure Portal, Visual Studio Code eller Azure CLI för att registrera din enhet, beroende på vad du föredrar.
I din IoT-hubb i Azure Portal skapas och hanteras IoT Edge-enheter separat från IoT-enheter som inte är edge-aktiverade.
Logga in på Azure Portal och gå till din IoT-hubb.
I den vänstra rutan väljer du Enheter på menyn och väljer sedan Lägg till enhet.
På sidan Skapa en enhet anger du följande information:
- Skapa ett beskrivande enhets-ID, till exempel
my-edge-device-1
(alla gemener). Kopiera det här enhets-ID:t när du använder det senare. - Markera kryssrutan IoT Edge-enhet .
- Välj Symmetrisk nyckel som autentiseringstyp.
- Använd standardinställningarna för att generera autentiseringsnycklar automatiskt, som ansluter den nya enheten till din hubb.
- Skapa ett beskrivande enhets-ID, till exempel
Välj Spara.
Du bör se din nya enhet i din IoT-hubb.
Nu när du har en enhet registrerad i IoT Hub kan du hämta etableringsinformation som används för att slutföra installationen och etableringen av IoT Edge-körningen i nästa steg.
Visa registrerade enheter och hämta etableringsinformation
Enheter som använder symmetrisk nyckelautentisering behöver sina anslutningssträng för att slutföra installationen och etableringen av IoT Edge-körningen. Anslutningssträng genereras för din IoT Edge-enhet när du skapar enheten. För Visual Studio Code och Azure CLI finns anslutningssträng i JSON-utdata. Om du använder Azure Portal för att skapa din enhet kan du hitta anslutningssträng från själva enheten. När du väljer din enhet i din IoT-hubb visas den som Primary connection string
på enhetssidan.
De gränsaktiverade enheter som ansluter till din IoT-hubb visas på sidan Enheter i din IoT-hubb. Om du har flera enheter kan du filtrera listan genom att välja typen Iot Edge-enheter och sedan välja Använd.
När du är redo att konfigurera enheten behöver du den anslutningssträng som länkar den fysiska enheten till dess identitet i IoT-hubben. Enheter som autentiserar med symmetriska nycklar har sina anslutningssträng tillgängliga att kopiera i portalen. Så här hittar du din anslutningssträng i portalen:
- På sidan Enheter väljer du IoT Edge-enhets-ID i listan.
- Kopiera värdet för antingen primär anslutningssträng eller sekundär anslutningssträng. Båda nycklarna fungerar.
Installera IoT Edge
I det här avsnittet förbereder du din virtuella Linux-dator eller fysiska enhet för IoT Edge. Sedan installerar du IoT Edge.
Kör följande kommandon för att lägga till paketlagringsplatsen och lägg sedan till Signeringsnyckeln för Microsoft-paketet i listan över betrodda nycklar.
Viktigt!
Den 30 juni 2022 drogs Raspberry Pi OS Stretch tillbaka från supportlistan för operativsystemet på nivå 1. För att undvika potentiella säkerhetsrisker uppdaterar du värdoperativsystemet till Bullseye.
För plattformsoperativsystem på nivå 2 görs installationspaket tillgängliga i Azure IoT Edge-versioner. Se installationsstegen i Offline eller specifik versionsinstallation.
Installationen kan utföras med några få kommandon. Öppna en terminal och kör följande kommandon:
24.04:
wget https://packages.microsoft.com/config/ubuntu/24.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb
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
Mer information om operativsystemversioner finns i Plattformar som stöds av Azure IoT Edge.
Kommentar
Azure IoT Edge-programvarupaket omfattas av licensvillkoren som finns i varje paket (usr/share/doc/{package-name}
eller LICENSE
katalogen). Läs licensvillkoren innan du använder ett paket. Din installation och användning av ett paket utgör ditt godkännande av dessa villkor. Om du inte godkänner licensvillkoren ska du inte använda det paketet.
Installera en containermotor
Azure IoT Edge förlitar sig på en OCI-kompatibel containerkörning. För produktionsscenarier rekommenderar vi att du använder Moby-motorn. Moby-motorn är containermotorn som stöds officiellt med IoT Edge. Docker CE/EE-containeravbildningar är kompatibla med Moby-körningen. Om du använder Ubuntu Core-snappar hanteras Docker-snapen av Canonical och stöds för produktionsscenarier.
Installera Moby-motorn.
sudo apt-get update; \
sudo apt-get install moby-engine
Som standard anger containermotorn inte storleksbegränsningar för containerloggar. Med tiden kan detta leda till att enheten fylls med loggar och att diskutrymmet börjar ta slut. Du kan dock konfigurera loggen så att den visas lokalt, även om den är valfri. Mer information om loggningskonfiguration finns i Checklista för produktionsdistribution.
Följande steg visar hur du konfigurerar containern så att den använder local
loggningsdrivrutinen som loggningsmekanism.
Skapa eller redigera den befintliga Docker-daemonens konfigurationsfil
sudo nano /etc/docker/daemon.json
Ange loggningsdrivrutinen som standard till
local
loggningsdrivrutinen enligt exemplet.{ "log-driver": "local" }
Starta om containermotorn för att ändringarna ska börja gälla.
sudo systemctl restart docker
Installera IoT Edge-körningen
IoT Edge-tjänsten tillhandahåller och upprätthåller säkerhetsstandarder på IoT Edge-enheten. Tjänsten startar vid varje start och startar enheten genom att starta resten av IoT Edge-körningen.
Kommentar
Från och med version 1.2 hanterar IoT-identitetstjänsten identitetsetablering och hantering för IoT Edge och för andra enhetskomponenter som behöver kommunicera med IoT Hub.
Stegen i det här avsnittet representerar den typiska processen för att installera den senaste IoT Edge-versionen på en enhet som har internetanslutning. Om du behöver installera en viss version, t.ex. en förhandsversion, eller om du behöver installera offline följer du installationsstegen offline eller specifik version senare i den här artikeln.
Dricks
Om du redan har en IoT Edge-enhet som kör en äldre version och vill uppgradera till den senaste versionen använder du stegen i Uppdatera IoT Edge-säkerhetsdaemonen och körningen. Senare versioner skiljer sig tillräckligt från tidigare versioner av IoT Edge för att specifika steg krävs för att uppgradera.
Installera den senaste versionen av IoT Edge och IoT-identitetstjänstpaketet (om du inte redan är uppdaterad):
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
Det valfria defender-iot-micro-agent-edge
paketet innehåller Microsoft Defender för IoT-säkerhetsmikroagenten som ger slutpunktssynlighet i hantering av säkerhetsstatus, sårbarheter, hotidentifiering, hantering av flottan med mera för att hjälpa dig att skydda dina IoT Edge-enheter. Vi rekommenderar att du installerar mikroagenten med Edge-agenten för att aktivera säkerhetsövervakning och härdning av dina Edge-enheter. Mer information om Microsoft Defender för IoT finns i Vad är Microsoft Defender för IoT för enhetsbyggare?
Etablera enheten med dess molnidentitet
Nu när containermotorn och IoT Edge-körningen är installerade på enheten är du redo att konfigurera enheten med dess molnidentitet och autentiseringsinformation.
Du kan konfigurera din IoT Edge-enhet med symmetrisk nyckelautentisering med hjälp av följande kommando:
sudo iotedge config mp --connection-string 'PASTE_DEVICE_CONNECTION_STRING_HERE'
Det här iotedge config mp
kommandot skapar en konfigurationsfil på enheten och anger din anslutningssträng i konfigurationsfilen.
Tillämpa konfigurationsändringarna.
sudo iotedge config apply
Om du vill visa konfigurationsfilen kan du öppna den:
sudo nano /etc/aziot/config.toml
Distribuera moduler
Om du vill distribuera dina IoT Edge-moduler går du till din IoT-hubb i Azure Portal och sedan:
Välj Enheter på IoT Hub-menyn.
Välj enheten för att öppna sidan.
Välj fliken Ange moduler .
Eftersom vi vill distribuera IoT Edge-standardmodulerna (edgeAgent och edgeHub) behöver vi inte lägga till några moduler i det här fönstret, så välj Granska + skapa längst ned.
Du ser JSON-bekräftelsen för dina moduler. Välj Skapa för att distribuera modulerna.
Mer information finns i Distribuera en modul.
Kontrollera att konfigurationen har slutförts
Verifiera att körningen har installerats och konfigurerats korrekt på din IoT Edge-enhet.
Dricks
Förhöjd behörighet krävs för att köra iotedge
-kommandon. När du loggar ut från datorn och sedan loggar in igen för första gången efter installationen av IoT Edge-körningen, så uppdateras dina behörigheter automatiskt. Tills dess använder du sudo
framför kommandona.
Kontrollera att IoT Edge-systemtjänsten körs.
sudo iotedge system status
Ett lyckat statussvar visar tjänsterna
aziot
som igång eller redo.Hämta tjänstloggar om du behöver felsöka tjänsten.
sudo iotedge system logs
Använd verktyget
check
för att verifiera enhetens konfigurations- och anslutningsstatus.sudo iotedge check
Du kan förvänta dig ett antal svar som kan innehålla OK (grön), Varning (gul) eller Fel (röd). Felsökning av vanliga fel finns i Lösningar på vanliga problem för Azure IoT Edge.
Dricks
Använd
sudo
alltid för att köra kontrollverktyget, även när dina behörigheter har uppdaterats. Verktyget behöver utökade privilegier för att få åtkomst till konfigurationsfilen för att verifiera konfigurationsstatusen.Kommentar
På en nyligen etablerad enhet kan du se ett fel som rör IoT Edge Hub:
× produktionsberedskap: Edge Hubs lagringskatalog finns kvar i värdfilsystemet – FelDet gick inte att kontrollera det aktuella tillståndet för edgeHub-containern
Det här felet förväntas på en nyligen etablerad enhet eftersom IoT Edge Hub-modulen ännu inte körs. Se till att dina IoT Edge-moduler har distribuerats i föregående steg. Distributionen löser det här felet.
Du kan också se en statuskod som
417 -- The device's deployment configuration is not set
. När modulerna har distribuerats ändras den här statusen.När tjänsten startar för första gången bör du bara se edgeAgent-modulen köras. EdgeAgent-modulen körs som standard och hjälper till att installera och starta eventuella ytterligare moduler som du distribuerar till enheten.
Kontrollera att enheten och modulerna distribueras och körs genom att visa enhetssidan i Azure Portal.
När modulerna har distribuerats och körts listar du dem på din enhet eller virtuella dator med följande kommando:
sudo iotedge list
Offlineinstallation eller specifik version (valfritt)
Stegen i det här avsnittet gäller scenarier som inte omfattas av standardinstallationsstegen. Detta kan omfatta:
- Installera IoT Edge när du är offline
- Installera en versionskandidatversion
Följ stegen i det här avsnittet om du vill installera en specifik version av Azure IoT Edge-körningen som inte är tillgänglig via pakethanteraren. Microsoft-paketlistan innehåller bara en begränsad uppsättning senaste versioner och deras underversioner, så de här stegen är till för alla som vill installera en äldre version eller en versionskandidatversion.
Om du använder Ubuntu-snappar kan du ladda ned en snap och installera den offline. Mer information finns i Ladda ned snaps och installera offline.
Med curl-kommandon kan du rikta in dig på komponentfilerna direkt från IoT Edge GitHub-lagringsplatsen.
Gå till Azure IoT Edge-versionerna och leta reda på den versionsversion som du vill rikta in dig på.
Expandera avsnittet Tillgångar för den versionen.
Varje version bör ha nya filer för IoT Edge och identitetstjänsten. Om du ska installera IoT Edge på en offlineenhet laddar du ned filerna i förväg. Annars använder du följande kommandon för att uppdatera dessa komponenter.
Hitta filen aziot-identity-service som matchar IoT Edge-enhetens arkitektur. Högerklicka på fillänken och kopiera länkadressen.
Använd den kopierade länken i följande kommando för att installera den versionen av identitetstjänsten:
curl -L <identity service link> -o aziot-identity-service.deb && sudo apt-get install ./aziot-identity-service.deb
Hitta filen aziot-edge som matchar IoT Edge-enhetens arkitektur. Högerklicka på fillänken och kopiera länkadressen.
Använd den kopierade länken i följande kommando för att installera den versionen av IoT Edge.
curl -L <iotedge link> -o aziot-edge.deb && sudo apt-get install ./aziot-edge.deb
Avinstallera IoT Edge
Om du vill ta bort IoT Edge-installationen från enheten använder du följande kommandon.
Ta bort IoT Edge-körningen.
sudo apt-get autoremove --purge aziot-edge
--purge
Utelämna flaggan om du planerar att installera om IoT Edge och använda samma konfigurationsinformation i framtiden. Flaggan --purge
tar bort alla filer som är associerade med IoT Edge, inklusive dina konfigurationsfiler.
När IoT Edge-körningen tas bort stoppas alla containrar som skapats men finns kvar på enheten. Visa alla containrar för att se vilka som finns kvar.
sudo docker ps -a
Ta bort containrarna från enheten, inklusive de två körningscontainrarna.
sudo docker rm -f <container ID>
Ta slutligen bort containerkörningen från enheten.
sudo apt-get autoremove --purge moby-engine
Nästa steg
Fortsätt att distribuera IoT Edge-moduler för att lära dig hur du distribuerar moduler till din enhet.