Läs på engelska

Dela via


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.

Flottskala eller enskild enhet?

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

    Diagram som visar flera enheter som ansluter till IoT Hub, med en OSConfig-tvilling för varje.

    Normalt skulle OSConfig-agenten inkluderas i referensenhets-OS-avbildningar, som sedan tillämpas på många enheter.

Vilka typer av enheter?

Maskinvaruklasser

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.

Linux "IoT-enheter" jämfört med Linux "Edge-enheter"

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.

Hur är det med enhetshemligheter och hur är det med flera appar/agenter/moduler?

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.

Jobb 1. Installera komponenterna på enheten

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

Steg 1.1. Ansluta en enhet till packages.microsoft.com

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"

Steg 1.2. Installera AIS-paketet

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

Steg 1.3. Installera OSConfig-paketet

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.

Jobb 2. Anslut till Azure

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.

Steg 2.1. Ange enhetens autentiseringsuppgifter till AIS på 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:

  1. Gå till listan över IoT Hub enheter
  2. Skapa en enhetsidentitet om det behövs
  3. Bläddra till enhetens egenskaper och kopiera anslutningssträngen

På enheten:

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

Steg 2.2. Verifiera lyckad anslutning till Azure

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 osconfigdu och försöker sedan med statuskommandot igen.

Klart! OSConfig-klienten körs nu på enheten.

Valfria agentinställningar

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:

IoT Hub protokollval

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

Ansluta via en HTTP-proxyserver

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.

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

  2. Kontrollera att https_proxy miljövariabeln eller HTTPS_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öra sudo systemctl daemon-reload och sudo systemctl restart osconfig när du har redigerat filen.

Nästa steg

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: