Freigeben über


Installieren des OSConfig-Agents für Linux

Dieser Artikel richtet sich an Personen, die ihren Geräten OSConfig-Funktionen hinzufügen möchten, damit ihre Konfiguration über Azure IoT-Dienste bereitgestellt, verwaltet und überwacht werden kann. Dies kann Geräteentwickler, Systemintegratoren, Lösungs-Generatoren usw. umfassen.

Der OSConfig-Agent ist eine kompakte Linux-Komponente, die die lokale Konfiguration jedes Geräts für die bedarfsorientierte Bereitstellung und Verwaltung in Azure IoT projiziert. Informationen zum Kontext zu OSConfig-Beweggründen und -Verwendung finden Sie unter Was ist OSConfig für IoT?

Flottenwaage oder einzelnes Gerät?

  • Um mit dem Ausprobieren von Szenarien zu beginnen, können Sie OSConfig auf einem einzelnen Gerät installieren.

  • Im großen Stil muss jedes Gerät, dessen Konfiguration bereitgestellt und verwaltet wird, über den OSConfig-Agent verfügen, wie im folgenden Diagramm dargestellt.

    Diagramm, das mehrere Geräte zeigt, die eine Verbindung mit IoT Hub herstellen, wobei jeweils ein OSConfig-Zwilling vorhanden ist.

    In der Regel ist der OSConfig-Agent in Referenzgerätebetriebssystemimages enthalten, die dann auf viele Geräte angewendet werden.

Welche Arten von Geräten?

Hardwareklassen

Eine Zusammenfassung finden Sie in der folgenden Tabelle. Detaillierte Hinweise folgen der Tabelle.

Installieren Sie OSConfig?
MCU-Klasse ¹ Jetzt nicht
Weniger leistungsfähige MPU/CPU mit Linux ² Ja
Leistungsstärkere Geräte mit Linux ³ Ja
Geräte, auf denen Windows IoT ausgeführt wird Ähnliche Funktionen
integrierte CSP-Referenz

¹ MCU-Klasse: Für den Kontext umfassen dies Arduino-Geräte, RP2040-basierte Geräte usw. Diese Geräte führen in der Regel szenariospezifischen Code Bare-Metal oder mit einem Mikrobetriebssystem wie AzureRTOS oder FreeRTOS aus.

² Weniger leistungsstarke MPU/CPU-Klasse mit Linux: Der Agent ist so konzipiert, dass er kompakt und effizient ist und die Verwendung auf kleineren Geräten ermöglicht, die Linux ausführen können.

³ Leistungsfähigeres Edgecomputing mit Linux: Als effiziente geräteseitige Komponente ist der OSConfig-Agent auf leistungsstärkeren Edge-Computegeräten wie NVidia Jetson-Kits perfekt zu Hause.

Linux "IoT-Geräte" im Vergleich zu Linux "Edgegeräte"

Im Azure IoT-Ökosystem für Linux werden manchmal die Begriffe IoT-Gerät und Edgegerät verwendet, um zu unterscheiden, ob auf dem Gerät IoT Edge installiert ist. Es besteht auch eine lose Korrelation mit der Geräteklasse (bei größeren Geräten ist in der Regel IoT Edge installiert).

OSConfig funktioniert in beiden Kontexten. Es kann parallel mit IoT Edge ausgeführt werden, erfordert jedoch keine IoT Edge.

Was ist mit Gerätegeheimnissen und wie sieht es mit mehreren Apps/Agents/Modulen aus?

Es wird empfohlen, OSConfig zusammen mit dem Azure IoT Identity Service (AIS) zu verwenden.

AIS ist microsofts On-Device-Broker für die Verarbeitung von Geheimnissen und Authentifizierung. Mit AIS können mehrere Apps, Agents und/oder Edge-Module nahtlos eine einzelne Geräteidentität gemeinsam nutzen. Die folgenden Schritte veranschaulichen die gemeinsame Verwendung von AIS und OSConfig.

AIS ist eigenständig verfügbar und ist auch in IoT Edge 1.2 und höher enthalten. Berücksichtigen Sie bei der Installation Folgendes.

Installieren Sie AIS?
Das Gerät verfügt nicht über IoT Edge (auch als "IoT-Gerät" bezeichnet) Ja
Gerät hat IoT Edge 1.2 oder höher Ja¹
Das Gerät verfügt über IoT Edge 1.1 oder niedriger Nein²

¹ IoT Edge 1.2 und höher enthalten die AIS-Komponenten. Aus Gründen der Einfachheit der Anweisungen umfassen die folgenden Schritte immer die AIS-Installation. Mit diesem Ansatz kann Ihr Paket-Manager erkennen, ob es sich bei diesem Schritt um einen No-Op-Vorgang handelt, anstatt diese Logik extern neu zu erstellen.

² Installieren Sie AIS nicht auf Geräten mit IoT Edge 1.1 oder niedriger. Erwägen Sie, auf eine höhere Version von IoT Edge umzusteigen. Wenn Sie nicht bereit sind, IoT Edge zu aktualisieren, aber dennoch OSConfig-Szenarien erkunden möchten, sollten Sie die Szenarien vorerst auf einem anderen Gerät oder virtuellen Computer ausprobieren.

Auftrag 1. Installieren der Komponenten auf dem Gerät

Es gibt drei Optionen, die Ihren Anforderungen entsprechen:

  • A. Installieren von Paketen
  • B. Erstellen aus der Quelle
  • C. Verwenden von Geräten mit integrierten Funktionen

Wählen Sie unten Ihre bevorzugte Benutzeroberfläche aus, um Anweisungen zu erhalten:

Fertige Installationspakete sind für arm64 (aka aarch64), amd64 (auch bekannt als x86_64) für verfügbar:

  • Debian 10
  • Debian 11
  • Ubuntu Server 18.04
  • Ubuntu Server 20.04

Schritt 1.1. Verbinden eines Geräts mit packages.microsoft.com

Sie können die folgenden Beispielbefehle verwenden, um Ihren Betriebssystempaket-Manager mit dem stabilen Kanal auf packages.microsoft.com zu verbinden.

#!/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

Tipp

Das obige Beispiel verbindet Ihren Paket-Manager mit dem prod Kanal auf packages.microsoft.com, was für die meisten Geräte und Situationen geeignet ist. Informationen zu Vorschaubuilds finden Sie unter Informationen zur OSConfig-Vorschau oder "Insiders"-Builds.

Schritt 1.2. Installieren des AIS-Pakets

Achtung

Wie oben erwähnt, installieren Sie AIS nicht auf einem Gerät mit IoT Edge 1.1 oder niedriger. AIS ist für Geräte ohne IoT Edge oder Geräte mit IoT Edge 1.2 oder höher.

sudo apt-get install -y aziot-identity-service

Schritt 1.3. Installieren des OSConfig-Pakets

sudo apt-get install -y osconfig

Wenn Sie nur die Komponenten zu diesem Zeitpunkt installieren (z. B. das Vorbereiten eines Basisimages), die keine Verbindung mit Azure herstellen, können Sie hier beenden. Die folgenden Schritte werden später ausgeführt, möglicherweise von Ihrem Kunden.

Auftrag 2. Herstellen einer Verbindung mit Azure

Nachdem der OSConfig-Agent und AIS auf dem Gerät vorhanden sind, besteht der nächste Schritt darin, das Gerät mit einer Identität zu konfigurieren, damit es eine Verbindung mit Azure herstellen kann.

Tipp

Einige Geräte verfügen möglicherweise über Mechanismen, um dies in Ihrem Namen zu tun. Beispielsweise verfügen Azure Percept-Geräte über eine Einrichtungsoberfläche, um eine Verbindung mit dem Gerät herzustellen.

Schritt 2.1. Festlegen der Geräteanmeldeinformationen in AIS auf dem Gerät

AIS unterstützt mehrere Bereitstellungsszenarien und Authentifizierungsmethoden.

Im folgenden vereinfachten Beispiel wird eine Verbindungszeichenfolge mit einem symmetrischen Schlüssel verwendet. Wählen Sie für Produktionsszenarien eine der stärkeren Authentifizierungsoptionen aus, die unter Konfigurieren des Azure IoT Identity Service beschrieben werden.

Schnelles Beispiel: Herstellen einer Verbindung mit einem symmetrischen Schlüssel

Führen Sie im Azure-Portal die folgenden Schritte aus:

  1. Navigieren Sie zu Ihrer IoT Hub Geräteliste.
  2. Erstellen einer Geräteidentität bei Bedarf
  3. Navigieren Sie zu den Eigenschaften des Geräts, und kopieren Sie die Verbindungszeichenfolge.

Auf dem Gerät:

  1. Führen Sie die folgenden Befehle aus, um die Anmeldeinformationen in AIS festzulegen, und ersetzen Sie dabei den Platzhalter für die Verbindungszeichenfolge durch Ihren eigenen.
sudo aziotctl config mp –-connection-string "<your connection string from IoT Hub>"
sudo aziotctl config apply

Schritt 2.2. Überprüfen der erfolgreichen Verbindung mit Azure

Mithilfe der folgenden Befehle auf dem Gerät können Sie überprüfen, ob AIS und OSConfig eine Verbindung mit IoT Hub herstellen:

sudo aziotctl check
sudo systemctl status osconfig | grep Active

Die Ausgabe des aziotctl check Befehls sollte auf alle bestandenen Tests hinweisen.

Die Ausgabe des systemctl status osconfig sollte enthalten Active: active. In einigen Fällen wird stattdessen angezeigt Active: activating (auto-restart) , was bedeutet, dass systemd auf einen Timer wartet, um den Dienst neu zu starten. Führen Sie aus, und versuchen Sie dann den Statusbefehl erneut, sudo systemctl restart osconfigum sofort vorbeizugehen, anstatt zu warten.

Fertig! Der OSConfig-Client wird jetzt auf Ihrem Gerät ausgeführt.

Optionale Agent-Einstellungen

Viele Personen können diesen Abschnitt überspringen und einfach das Standardverhalten verwenden. Wenn Sie Umgebungs- oder Governanceeinschränkungen wie Proxyserver, Firewalleinschränkungen für ausgehenden Datenverkehr oder mehrschichtige Netzwerke haben, lesen Sie die folgenden Informationen:

IoT Hub Protokollauswahl

Tipp

Die Protokollauswahl wurde dem Prod/stable-Kanal in Version v1.0.2.2022040405 hinzugefügt. Stellen Sie sicher, dass Sie die neueste prod/stable-Version von OSConfig verwenden.

Bei der Kommunikation mit dem IoT Hub kann der OSConfig-Agent den einfachen Message Queuing Telemetry Transport (MQTT) oder MQTT über WebSockets (MQTT_WS) verwenden.

Viele Personen müssen kein Protokoll angeben und können einfach Standardverhalten verwenden. Wenn Sie ein Protokoll basierend auf einer der folgenden Überlegungen angeben müssen, legen Sie den Protocol Wert in /etc/osconfig/osconfig/osconfig.json fest.

MQTT MQTT_WS
TCP-Port ¹ 8883 443
Proxyserver ² Nein Ja
IoT Edge-Gateway
(übergeordnetes/untergeordnetes Element) ¹
Ja Nein
Protokollbezeichner
, um in osconfig.json festzulegen
1 2

¹ Bezieht sich auf den TCP-Port, der verwendet wird, wenn der OSConfig-Agent auf dem Gerät eine ausgehende Verbindung mit IoT Hub

² Bezieht sich darauf, ob OSConfig explizit einen HTTP-Proxyserver verwenden kann (über https_proxy Umgebungsvariable).

¹ Bezieht sich auf das Szenario IoT Edge Transparent Gateway, bei dem OSConfig, das auf einem untergeordneten Gerät ausgeführt wird, über ein übergeordnetes Gerät eine Verbindung mit IoT Hub herstellt.

Herstellen einer Verbindung über einen HTTP-Proxyserver

Wenn ihre Umgebung erfordert, dass OSConfig über einen HTTP-Proxyserver eine Verbindung mit IoT Hub herstellen kann, lesen Sie die folgenden Informationen:

Tipp

Proxyserverunterstützung wurde dem prod/stable-Kanal in Version 1.0.2.2022040405 hinzugefügt. Ensure you are using the latest prod/stable version of OSConfig.

  1. Wie in IoT Hub Protokollauswahl erwähnt, können nur MQTT_WS mit einem HTTP-Proxyserver verwendet werden. Um MQTT_WS zu aktivieren, stellen Sie sicher, dass der Protocol Wert in /etc/osconfig/osconfig.json auf 2festgelegt ist.

  2. Stellen Sie sicher, dass die Umgebungsvariable https_proxy oder HTTPS_PROXY im Kontext festgelegt ist, in dem OSConfig ausgeführt wird.

    In der Regel vermitteln Sysadmins oder Image Builder dies, indem sie die Systemd Unit-Dateien für alle Dienste (einschließlich OSConfig) bearbeiten, die den Proxyserver verwenden sollen.

    Sie würden z. B. eine Zeile wie
    Environment="https_proxy=http://myproxy.example.com:3128"
    in den [Service] Teil von /etc/systemd/system/osconfig.service.
    Stellen Sie sicher, dass Sie und sudo systemctl restart osconfig nach dem Bearbeiten der Datei ausführensudo systemctl daemon-reload.

Nächste Schritte

Nachdem Sie nun über ein Gerät verfügen, auf dem OSConfig ausgeführt wird und mit Azure IoT verbunden ist, können Sie Verwaltungsszenarien ausprobieren.

Eine Übersicht über OSConfig-Szenarien und -Funktionen finden Sie unter:

Spezifische Beispiele aus der Praxis finden Sie unter: