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.
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:
- Ga naar de lijst met IoT Hub apparaten
- Maak indien nodig een apparaat-id
- Blader naar de eigenschappen van het apparaat en kopieer de connection string
Op het apparaat:
- 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 osconfig
en 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.
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 op2
.Zorg ervoor dat de omgevingsvariabele
https_proxy
ofHTTPS_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 ensudo systemctl restart osconfig
uitvoertsudo 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: