Hur och var du installerar OSConfig-agenten för Linux
Den här artikeln är avsedd för personer som vill lägga till OSConfig-funktioner på sina enheter, så att deras konfiguration kan etableras, hanteras och övervakas via Azure IoT-tjänster. Detta kan omfatta enhetsbyggare, systemintegrerare, lösningsbyggare och så vidare.
OSConfig-agenten är en kompakt Linux-komponent som projicerar varje enhets lokala konfiguration till Azure IoT för etablering och hantering i stor skala. Kontext för OSConfig-motiveringar och -användning finns i: Vad är OSConfig för IoT.
För att komma igång med att testa scenarier kan du installera OSConfig på en enda enhet.
I stor skala måste varje enhet vars konfiguration etableras och hanteras ha OSConfig-agenten, som i följande diagram.
Normalt skulle OSConfig-agenten inkluderas i referensenhets-OS-avbildningar, som sedan tillämpas på många enheter.
En sammanfattning finns i tabellen nedan. Detaljerade anteckningar följer tabellen.
Vill du installera OSConfig? | |
---|---|
MCU-klass ¹ | Inte just nu |
Mindre kraftfull MPU/CPU med Linux ² | Yes |
Mer kraftfulla enheter med Linux ³ | Yes |
Enheter som kör Windows IoT | Liknande funktioner inbyggd CSP-referens |
¹ MCU-klass: För kontext skulle dessa omfatta Arduino-enheter, RP2040-baserade enheter och så vidare. Dessa enheter kör vanligtvis scenariospecifik kod utan operativsystem eller med ett mikrooperativsystem, till exempel AzureRTOS eller FreeRTOS.
² Mindre kraftfull MPU/CPU-klass med Linux: Agenten är utformad för att vara kompakt och effektiv, vilket möjliggör användning till mindre enheter som kan köra Linux.
³ Mer kraftfull edge-beräkning med Linux: Som en effektiv komponent på enhetssidan är OSConfig-agenten perfekt hemma på mer kraftfulla edge-beräkningsenheter som NVidia Jetson-kit.
I Azure IoT-ekosystemet för Linux används termerna IoT-enhet jämfört med Edge-enhet ibland för att skilja mellan om enheten har IoT Edge installerad. Det finns också en lös korrelation med enhetsklassen (större enheter brukar ha IoT Edge installerade).
OSConfig fungerar i båda kontexterna. Den kan köras sida vid sida med IoT Edge, men kräver inte IoT Edge.
Vi rekommenderar att du använder OSConfig tillsammans med Azure IoT Identity Service (AIS).
AIS är Microsofts asynkron meddelandekö på enheten för hantering av hemligheter och autentisering. AIS gör det smidigt för flera appar, agenter och/eller Edge-moduler att dela en enda enhetsidentitet. Stegen nedan visar hur du använder AIS och OSConfig tillsammans.
AIS är tillgängligt fristående och ingår även i IoT Edge 1.2 och senare. Tänk på följande när du installerar.
Vill du installera AIS? | |
---|---|
Enheten har inte IoT Edge (även kallat "IoT-enhet") | Yes |
Enheten har IoT Edge 1.2 eller senare | Ja ¹ |
Enheten har IoT Edge 1.1 eller lägre | No² |
¹ IoT Edge 1.2 och senare inkluderar AIS-komponenterna. För enkelhetens skull inkluderar stegen nedan alltid AIS-installation. Med den här metoden kan pakethanteraren identifiera om det här steget är en no-op, i stället för att återskapa den logiken externt.
² Installera inte AIS på enheter med IoT Edge 1.1 eller lägre. Överväg att flytta till en senare version av IoT Edge. Om du inte är redo att uppgradera IoT Edge men fortfarande vill utforska OSConfig-scenarier kan du prova scenarier på en annan enhet eller virtuell dator för tillfället.
Det finns tre alternativ som passar dina behov:
- A. Installera paket
- B. Skapa från källa
- C. Använda enheter med de inbyggda funktionerna
Välj önskad upplevelse nedan för instruktioner:
Färdiga installationspaket är tillgängliga för arm64 (även kallat aarch64), amd64 (även kallat x86_64) på:
- Debian 10
- Debian 11
- Ubuntu Server 18.04
- Ubuntu Server 20.04
Du kan använda följande exempelkommandon för att ansluta os-pakethanteraren till den stabila kanalen på packages.microsoft.com.
#!/bin/bash
## For Ubuntu and on Debian 10+
## Register packages.microsoft.com key and prod channel
sudo wget https://packages.microsoft.com/keys/microsoft.asc -O /etc/apt/trusted.gpg.d/packages-microsoft-com_key.asc
os_name=$(grep ^ID= /etc/os-release | tr -d "ID=")
os_version=$(grep ^VERSION_ID /etc/os-release | tr -d "VERSION_ID=")
sudo wget https://packages.microsoft.com/config/"$os_name"/"$os_version"/prod.list -O /etc/apt/sources.list.d/packages-microsoft-com_prod.list
sudo apt update
Tips
Exemplet ovan ansluter pakethanteraren till prod
kanalen på packages.microsoft.com, vilket är lämpligt för de flesta enheter och situationer. Information om förhandsversioner finns i: Om förhandsversioner av OSConfig eller "insiders"
Varning
Som nämnts ovan ska du inte installera AIS på en enhet med IoT Edge 1.1 eller lägre. AIS är för enheter utan IoT Edge eller enheter med IoT Edge 1.2 eller senare.
sudo apt-get install -y aziot-identity-service
sudo apt-get install -y osconfig
Om du bara installerar komponenterna just nu (till exempel förbereder en basavbildning) som inte ansluter till Azure kan du sluta här. Följande steg skulle utföras senare, kanske av kunden.
Nu när OSConfig-agenten och AIS finns på enheten är nästa steg att konfigurera enheten med en identitet så att den kan ansluta till Azure.
Tips
Vissa enheter kan ha mekanismer för att göra detta åt dig. Azure Percept-enheter innehåller till exempel en konfigurationsupplevelse för att ansluta enheten.
AIS stöder flera distributionsscenarier och autentiseringsmetoder.
I följande förenklade exempel används en anslutningssträng med en symmetrisk nyckel. För produktionsscenarier väljer du bland de starkare autentiseringsalternativen som beskrivs i Konfigurera Azure IoT Identity Service.
Snabbexempel: Ansluta med symmetrisk nyckel
I Azure-portalen:
- Gå till listan över IoT Hub enheter
- Skapa en enhetsidentitet om det behövs
- Bläddra till enhetens egenskaper och kopiera anslutningssträngen
På enheten:
- Kör följande kommandon för att ange autentiseringsuppgifterna till AIS och ersätt platshållaren för anslutningssträngen med din egen.
sudo aziotctl config mp –-connection-string "<your connection string from IoT Hub>" sudo aziotctl config apply
Du kan kontrollera att AIS och OSConfig ansluter till IoT Hub med hjälp av följande kommandon på enheten:
sudo aziotctl check
sudo systemctl status osconfig | grep Active
Kommandots aziotctl check
utdata bör indikera alla tester som skickas.
Utdata för systemctl status osconfig
ska innehålla Active: active
. I vissa fall kan du se Active: activating (auto-restart)
i stället, vilket innebär att systemd väntar på en timer för att starta om tjänsten. Om du vill gå förbi detta direkt i stället för att vänta kör sudo systemctl restart osconfig
du och försöker sedan med statuskommandot igen.
Klart! OSConfig-klienten körs nu på enheten.
Många kan hoppa över det här avsnittet och helt enkelt använda standardbeteendena. Om du har miljö- eller styrningsbegränsningar som proxyservrar, utgående brandväggsbegränsningar eller skiktade nätverk kan du läsa följande:
Tips
Valet av protokoll lades till i prod/stable-kanalen i version v1.0.2.2022040405. Se till att du använder den senaste prod/stabila versionen av OSConfig.
Vid kommunikation med IoT Hub kan OSConfig-agenten använda MQTT (Plain Message Queuing Telemetry Transport) eller MQTT över WebSockets (MQTT_WS).
Många behöver inte ange något protokoll och kan helt enkelt använda standardbeteenden. Om du behöver ange ett protokoll baserat på något av följande överväganden anger Protocol
du värdet i /etc/osconfig/osconfig.json.
MQTT | MQTT_WS | |
---|---|---|
TCP-port ¹ | 8883 | 443 |
Proxyserver ² | Nej | Ja |
IoT Edge gateway (överordnad/underordnad) ³ |
Ja | Nej |
Protokollidentifierare för att ange i osconfig.json |
1 | 2 |
¹ Refererar till den TCP-port som används när OSConfig-agenten på enheten ansluter utgående till IoT Hub
² Refererar till om OSConfig uttryckligen kan använda en HTTP-proxyserver (via https_proxy miljövariabel)
³ Refererar till scenariot IoT Edge transparent gateway, där OSConfig som körs på en underordnad enhet ansluter till IoT Hub via en överordnad enhet
Om din miljö kräver ATT OSConfig ansluter till IoT Hub via en HTTP-proxyserver kan du läsa följande:
Tips
Proxyserverstöd har lagts till i prod/stable-kanalen i version v1.0.2.2022040405. Ensure you are using the latest prod/stable version of OSConfig.
Som anges i IoT Hub protokollval kan endast MQTT_WS användas med en HTTP-proxyserver. Om du vill aktivera MQTT_WS kontrollerar du att
Protocol
värdet i /etc/osconfig/osconfig.json är inställt på2
.Kontrollera att
https_proxy
miljövariabeln ellerHTTPS_PROXY
anges i den kontext där OSConfig körs.Vanligtvis förmedlar sysadmins eller bildbyggare detta genom att redigera systemenhetsfilerna för alla tjänster (inklusive OSConfig) som ska använda proxyservern.
Du kan till exempel lägga till en rad som
Environment="https_proxy=http://myproxy.example.com:3128"
till delen[Service]
av /etc/systemd/system/osconfig.service.
Se till att körasudo systemctl daemon-reload
ochsudo systemctl restart osconfig
när du har redigerat filen.
Nu när du har en enhet som kör OSConfig och är ansluten till Azure IoT kan du prova hanteringsscenarier.
En översikt över OSConfig-scenarier och funktioner finns i:
Specifika praktiska exempel finns i: