Delen via


Hoe en waar installeer ik de OSConfig-agent voor Linux?

Dit artikel is bedoeld voor personen die OSConfig-mogelijkheden willen toevoegen aan hun apparaten, zodat hun configuratie kan worden ingericht, beheerd en bewaakt via Azure IoT-services. Dit kunnen apparaatbouwers, systeemintegrators, oplossingsbouwers, enzovoort zijn.

De OSConfig-agent is een compact Linux-onderdeel dat de lokale configuratie van elk apparaat projecteert in Azure IoT voor inrichting en beheer op schaal. Zie Wat is OSConfig voor IoT voor context over OSConfig-motivaties en -gebruik.

Vlootschaal of één apparaat?

  • Als u scenario's wilt uitproberen, kunt u OSConfig installeren op één apparaat.

  • Op schaal moet elk apparaat waarvan de configuratie wordt ingericht en beheerd, de OSConfig-agent hebben, zoals in het volgende diagram.

    Diagram met meerdere apparaten die verbinding maken met IoT Hub, met voor elk een OSConfig-dubbel.

    Normaal gesproken wordt de OSConfig-agent opgenomen in besturingssysteeminstallatiekopieën van referentieapparaten, die vervolgens op veel apparaten worden toegepast.

Wat voor soort apparaten?

Hardwareklassen

Zie de onderstaande tabel voor een overzicht. Gedetailleerde notities volgen de tabel.

OSConfig installeren?
MCU-klasse ¹ Momenteel niet
Minder krachtige MPU/CPU met Linux ² Yes
Krachtigere apparaten met Linux ³ Yes
Apparaten met Windows IoT Vergelijkbare mogelijkheden
ingebouwde CSP-verwijzing

¹ MCU-klasse: Voor context zijn dit Arduino-apparaten, apparaten op basis van RP2040, enzovoort. Deze apparaten voeren meestal scenariospecifieke code bare-metal of met een micro-besturingssysteem zoals AzureRTOS of FreeRTOS uit.

² Minder krachtige MPU/CPU-klasse met Linux: De agent is ontworpen om compact en efficiënt te zijn, waardoor gebruik tot kleinere apparaten mogelijk is die geschikt zijn voor Linux.

³ Krachtigere edge-rekenkracht met Linux: als een efficiënt onderdeel aan de apparaatzijde is de OSConfig-agent perfect thuis op krachtigere edge-rekenapparaten, zoals NVidia Jetson-kits.

Linux 'IoT-apparaten' versus Linux 'Edge-apparaten'

In het Azure IoT-ecosysteem voor Linux worden de termen IoT-apparaat versus Edge-apparaat soms gebruikt om te onderscheiden of het apparaat IoT Edge is geïnstalleerd. Er is ook een losse correlatie met apparaatklasse (grotere apparaten hebben meestal IoT Edge geïnstalleerd).

OSConfig werkt in beide contexten. Het kan naast IoT Edge worden uitgevoerd, maar er is geen IoT Edge vereist.

Hoe zit het met apparaatgeheimen en hoe zit het met meerdere apps/agents/modules?

U wordt aangeraden OSConfig te gebruiken in combinatie met de Azure IoT Identity Service (AIS).

AIS is de broker op het apparaat van Microsoft voor het verwerken van geheimen en verificatie. AIS maakt het naadloos voor meerdere apps, agents en/of Edge-modules om één apparaat-id te delen. In de onderstaande stappen ziet u hoe AIS en OSConfig samen worden gebruikt.

AIS is zelfstandig beschikbaar en is ook opgenomen in IoT Edge 1.2 en hoger. Houd rekening met het volgende bij de installatie.

AIS installeren?
Het apparaat heeft geen IoT Edge (ook wel 'IoT-apparaat' genoemd) Yes
Apparaat heeft IoT Edge 1.2 of hoger Ja¹
Apparaat heeft IoT Edge 1.1 of lager No²

¹ IoT Edge 1.2 en hoger omvatten de AIS-onderdelen. Voor het gemak van de instructies bevatten de onderstaande stappen altijd AIS-installatie. Met deze benadering kan uw pakketbeheerder detecteren of deze stap een no-op is, in plaats van die logica extern opnieuw te maken.

² Installeer AIS niet op apparaten met IoT Edge 1.1 of lager. Overweeg om over te stappen op een nieuwere versie van IoT Edge. Als u nog niet klaar bent om IoT Edge te upgraden, maar u toch OSConfig-scenario's wilt verkennen, kunt u overwegen om de scenario's nu op een ander apparaat of een andere VM te proberen.

Taak 1. De onderdelen op het apparaat installeren

Er zijn drie opties die aan uw behoeften voldoen:

  • A. Pakketten installeren
  • B. Bouwen op bron
  • C. Apparaten gebruiken met de ingebouwde mogelijkheden

Kies hieronder uw voorkeurservaring voor instructies:

Kant-en-klare installatiepakketten zijn beschikbaar voor arm64 (aka aarch64), amd64 (ook wel x86_64) op:

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

Stap 1.1. Een apparaat verbinden met packages.microsoft.com

U kunt de volgende voorbeeldopdrachten gebruiken om uw besturingssysteempakketbeheer te verbinden met het stabiele kanaal op 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

Tip

In het bovenstaande voorbeeld wordt uw pakketbeheerder verbonden met het prod kanaal op packages.microsoft.com, wat geschikt is voor de meeste apparaten en situaties. Zie voor meer informatie over preview-versies: Over OSConfig preview of insiders-builds

Stap 1.2. Het AIS-pakket installeren

Waarschuwing

Zoals hierboven vermeld, moet u AIS niet installeren op een apparaat met IoT Edge 1.1 of lager. AIS is bedoeld voor apparaten zonder IoT Edge of apparaten met IoT Edge 1.2 of hoger.

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

Stap 1.3. Het OSConfig-pakket installeren

sudo apt-get install -y osconfig

Als u op dit moment alleen de onderdelen installeert (bijvoorbeeld het voorbereiden van een basisinstallatiekopieën) en geen verbinding maakt met Azure, kunt u hier stoppen. De volgende stappen worden later uitgevoerd, bijvoorbeeld door uw klant.

Taak 2. Verbinding maken met Azure

Nu de OSConfig-agent en AIS aanwezig zijn op het apparaat, is de volgende stap het configureren van het apparaat met een identiteit, zodat het verbinding kan maken met Azure.

Tip

Sommige apparaten hebben mogelijk mechanismen om dit namens u te doen. Azure Percept-apparaten bevatten bijvoorbeeld een installatie-ervaring om het apparaat te verbinden.

Stap 2.1. De apparaatreferentie instellen in AIS op het apparaat

AIS ondersteunt meerdere implementatiescenario's en verificatiemethoden.

In het volgende eenvoudige voorbeeld wordt een connection string met een symmetrische sleutel gebruikt. Voor productiescenario's kiest u uit de sterkere verificatieopties die worden beschreven in De Azure IoT Identity Service configureren.

Snel voorbeeld: Verbinding maken met symmetrische sleutel

In Azure Portal:

  1. Ga naar de lijst met IoT Hub apparaten
  2. Maak indien nodig een apparaat-id
  3. Blader naar de eigenschappen van het apparaat en kopieer de connection string

Op het apparaat:

  1. Voer de volgende opdrachten uit om de referentie in te stellen in AIS, waarbij u de tijdelijke aanduiding connection string vervangt door uw eigen tijdelijke aanduiding.
sudo aziotctl config mp –-connection-string "<your connection string from IoT Hub>"
sudo aziotctl config apply

Stap 2.2. Controleren of de verbinding met Azure is geslaagd

U kunt controleren of AIS en OSConfig verbinding maken met IoT Hub met behulp van de volgende opdrachten op het apparaat:

sudo aziotctl check
sudo systemctl status osconfig | grep Active

De uitvoer van de aziotctl check opdracht moet aangeven dat alle tests slagen.

De uitvoer van de systemctl status osconfig moet bevatten Active: active. In sommige gevallen ziet Active: activating (auto-restart) u mogelijk in plaats daarvan, wat betekent dat systemd op een timer wacht om de service opnieuw te starten. Als u hier direct voorbij wilt gaan in plaats van te wachten, voert u uit sudo systemctl restart osconfigen probeert u de statusopdracht opnieuw.

Dat is alles. De OSConfig-client wordt nu uitgevoerd op uw apparaat.

Optionele agentinstellingen

Veel mensen kunnen deze sectie overslaan en gewoon het standaardgedrag gebruiken. Als u omgevings- of governancebeperkingen hebt, zoals proxyservers, uitgaande firewallbeperkingen of gelaagde netwerken, raadpleegt u het volgende:

IoT Hub protocol selecteren

Tip

Protocolselectie is toegevoegd aan het prod/stable-kanaal in versie v1.0.2.2022040405. Zorg ervoor dat u de nieuwste prod/stabiele versie van OSConfig gebruikt.

Wanneer u communiceert met de IoT Hub, kan de OSConfig-agent gewoon Message Queuing Telemetry Transport (MQTT) gebruiken of MQTT via WebSockets (MQTT_WS) gebruiken.

Veel mensen hoeven geen protocol op te geven en kunnen gewoon standaardgedrag gebruiken. Als u een protocol moet opgeven op basis van een van de volgende overwegingen, stelt u de Protocol waarde in /etc/osconfig/osconfig.json in.

MQTT MQTT_WS
TCP-poort ¹ 8883 443
Proxyserver ² Nee Ja
IoT Edge gateway
(bovenliggend/onderliggend) ³
Ja Nee
Protocol-id
instellen in osconfig.json
1 2

¹ Verwijst naar de TCP-poort die wordt gebruikt wanneer de OSConfig-agent op het apparaat uitgaande verbinding maakt met IoT Hub

² Verwijst naar of OSConfig expliciet een HTTP-proxyserver kan gebruiken (via https_proxy omgevingsvariabele)

³ Verwijst naar het scenario IoT Edge transparante gateway, waarin OSConfig op een onderliggend apparaat verbinding maakt met IoT Hub via een bovenliggend apparaat

Verbinding maken via een HTTP-proxyserver

Als voor uw omgeving OSConfig is vereist om verbinding te maken met IoT Hub via een HTTP-proxyserver, raadpleegt u het volgende:

Tip

Proxyserverondersteuning is toegevoegd aan het prod/stable-kanaal in versie v1.0.2.2022040405. Ensure you are using the latest prod/stable version of OSConfig.

  1. Zoals vermeld in IoT Hub protocolselectie, kunnen alleen MQTT_WS worden gebruikt met een HTTP-proxyserver. Als u MQTT_WS wilt activeren, moet u ervoor zorgen dat de Protocol waarde in /etc/osconfig/osconfig.json is ingesteld op 2.

  2. Zorg ervoor dat de omgevingsvariabele https_proxy of HTTPS_PROXY is ingesteld in de context waarin OSConfig wordt uitgevoerd.

    Normaal gesproken brengen sysadmins of installatiekopieënbouwers dit over door de systemd unit-bestanden te bewerken voor alle services (inclusief OSConfig) die de proxyserver moeten gebruiken.

    U voegt bijvoorbeeld een regel toe zoals
    Environment="https_proxy=http://myproxy.example.com:3128"
    naar het [Service] gedeelte van /etc/systemd/system/osconfig.service.
    Zorg ervoor dat u en sudo systemctl restart osconfig uitvoert sudo systemctl daemon-reload nadat u het bestand hebt bewerkt.

Volgende stappen

Nu u een apparaat hebt waarop OSConfig wordt uitgevoerd en is verbonden met Azure IoT, kunt u beheerscenario's uitproberen.

Zie voor een overzicht van OSConfig-scenario's en -mogelijkheden:

Zie voor specifieke praktijkvoorbeelden: