IoT Edge-eszközök létrehozása és üzembe helyezése nagy méretekben Linuxon szimmetrikus kulccsal
A következőkre vonatkozik: IoT Edge 1.1
Fontos
Az IoT Edge 1.1 támogatási dátuma 2022. december 13. volt. A termék, szolgáltatás, technológia vagy API támogatásáról a Microsoft-termékek életciklusa című leírásból tájékozódhat. Az IoT Edge legújabb verziójára való frissítésről további információt az IoT Edge frissítése című témakörben talál.
Ez a cikk részletes útmutatást nyújt egy vagy több Linux IoT Edge-eszköz szimmetrikus kulcsok használatával történő automatikus fejlesztéséhez. Az Azure IoT Edge-eszközöket automatikusan kiépítheti az Azure IoT Hub eszközkiépítési szolgáltatással (DPS). Ha nem ismeri az automatikus kiépítés folyamatát, a folytatás előtt tekintse át a kiépítés áttekintését .
A feladatok a következők:
- Hozzon létre egyéni regisztrációt egyetlen eszközhöz vagy csoportregisztrációhoz egy eszközcsoporthoz.
- Telepítse az IoT Edge-futtatókörnyezetet, és csatlakozzon az IoT Hubhoz.
A szimmetrikus kulcsigazolás egy egyszerű módszer az eszköz hitelesítésére egy eszközkiépítési szolgáltatáspéldánysal. Ez az igazolási módszer "Hello world" élményt jelent azoknak a fejlesztőknek, akik még nem ismerik az eszközök kiépítését, vagy nem rendelkeznek szigorú biztonsági követelményekkel. A TPM- vagy X.509-tanúsítványokat használó eszközigazolás biztonságosabb, és szigorúbb biztonsági követelményekhez kell használni.
Előfeltételek
Felhőbeli erőforrások
- Aktív IoT Hub
- Az IoT Hub eszközkiépítési szolgáltatásának egy példánya az Azure-ban, az IoT Hubhoz csatolva
- Ha nem rendelkezik eszközkiépítési szolgáltatáspéldánysal, kövesse az új IoT Hub-eszközkiépítési szolgáltatás létrehozása, valamint az IoT Hub és az IoT Hub eszközkiépítési szolgáltatás szakaszainak összekapcsolása rövid útmutatójában leírtakat.
- Az eszközkiépítési szolgáltatás futtatása után másolja ki az azonosító hatókörének értékét az áttekintési oldalról. Ezt az értéket az IoT Edge-futtatókörnyezet konfigurálásakor használja.
Eszközkövetelmények
Egy fizikai vagy virtuális Linux-eszköz, amely az IoT Edge-eszköz.
Az egyes eszközök azonosításához egyedi regisztrációs azonosítót kell megadnia. Használhatja a MAC-címet, a sorozatszámot vagy az eszközről származó bármilyen egyedi információt. Használhat például egy MAC-cím és sorozatszám kombinációját, amely a következő sztringet alkotja a regisztrációs azonosítóhoz: sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6
. Az érvényes karakterek kisbetűs alfanumerikusak és kötőjelek (-
).
DPS-regisztráció létrehozása
Hozzon létre egy regisztrációt egy vagy több eszköz DPS-ben történő kiépítéséhez.
Ha egyetlen IoT Edge-eszközt szeretne kiépíteni, hozzon létre egy egyéni regisztrációt. Ha több eszköz kiépítésére van szüksége, kövesse a DPS-csoportregisztráció létrehozásának lépéseit.
Amikor létrehoz egy regisztrációt a DPS-ben, lehetősége van az ikereszköz kezdeti állapotának deklarálására. Az ikereszközön beállíthatja, hogy a címkéket a megoldásban szükséges bármely metrika alapján csoportosítsa, például régió, környezet, hely vagy eszköztípus szerint. Ezek a címkék automatikus üzembe helyezéseket hoznak létre.
Az eszközkiépítési szolgáltatásban történő regisztrációval kapcsolatos további információkért tekintse meg az eszközregisztrációk kezelését ismertető témakört.
DPS-egyéni regisztráció létrehozása
Tipp.
A cikkben szereplő lépések az Azure Portalon érhetők el, de egyéni regisztrációkat is létrehozhat az Azure CLI használatával. További információ: az iot dps-regisztráció. A CLI-parancs részeként használja az edge-kompatibilis jelzőt annak megadásához, hogy a regisztráció egy IoT Edge-eszközhöz tartozik- e.
Az Azure Portalon keresse meg az IoT Hub eszközkiépítési szolgáltatás példányát.
A Beállítások területen válassza a Regisztrációk kezelése lehetőséget.
Válassza az Egyéni regisztráció hozzáadása lehetőséget, majd végezze el a következő lépéseket a regisztráció konfigurálásához:
A mechanizmushoz válassza a Szimmetrikus kulcsot.
Adjon meg egy egyedi regisztrációs azonosítót az eszközhöz.
Szükség esetén adjon meg egy IoT Hub-eszközazonosítót az eszközhöz. Az eszközazonosítókkal egy-egy eszközt célozhat meg a modul üzembe helyezéséhez. Ha nem ad meg eszközazonosítót, a rendszer a regisztrációs azonosítót használja.
Az Igaz lehetőséget választva deklarálhatja, hogy a regisztráció egy IoT Edge-eszközre vonatkozik.
Ha szeretné, adjon hozzá egy címkeértéket az ikereszköz kezdeti állapotához. Címkék használatával célcsoportokat célozhat meg a modul üzembe helyezéséhez. Példa:
{ "tags": { "environment": "test" }, "properties": { "desired": {} } }
Válassza a Mentés lehetőséget.
Másolja ki az egyéni regisztráció elsődleges kulcsértékét az IoT Edge-futtatókörnyezet telepítésekor használandó értékre.
Most, hogy már létezik regisztráció ehhez az eszközhöz, az IoT Edge-futtatókörnyezet automatikusan kiépítheti az eszközt a telepítés során.
Az IoT Edge telepítése
Ebben a szakaszban előkészíti Linux rendszerű virtuális gépét vagy fizikai eszközét az IoT Edge-hez. Ezután telepítse az IoT Edge-et.
Futtassa az alábbi parancsokat a csomagtárház hozzáadásához, majd adja hozzá a Microsoft-csomagaláíró kulcsot a megbízható kulcsok listájához.
Fontos
2022. június 30-án a Raspberry Pi OS Stretch kilépett az 1. rétegbeli operációsrendszer-támogatási listából. A lehetséges biztonsági rések elkerülése érdekében frissítse a gazdagép operációs rendszerét a Bullseye-re.
A telepítés néhány paranccsal elvégezhető. Nyisson meg egy terminált, és futtassa a következő parancsokat:
20.04:
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb
18.04:
wget https://packages.microsoft.com/config/ubuntu/18.04/multiarch/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb
Feljegyzés
Az Azure IoT Edge szoftvercsomagjaira az egyes csomagokban (usr/share/doc/{package-name}
vagy a LICENSE
címtárban) található licencfeltételek vonatkoznak. A csomag használata előtt olvassa el a licencfeltételeket. A csomagok telepítése és használata jelenti a jelen feltételek elfogadását. Ha nem ért egyet a licencfeltételekkel, ne használja ezt a csomagot.
Tárolómotor telepítése
Az Azure IoT Edge egy OCI-kompatibilis tároló-futtatókörnyezetre támaszkodik. Éles helyzetekben javasoljuk, hogy használja a Moby motort. A Moby motor az egyetlen olyan tárolómotor, amelyet hivatalosan támogat az IoT Edge. A Docker CE/EE tárolórendszerképei kompatibilisek a Moby futtatókörnyezetével.
Telepítse a Moby motort.
sudo apt-get update; \
sudo apt-get install moby-engine
A Moby motor sikeres telepítése után konfigurálja úgy, hogy naplózási illesztőprogramot használjon local
naplózási mechanizmusként. A naplózási konfigurációval kapcsolatos további információkért tekintse meg az éles üzembehelyezési ellenőrzőlistát.
Hozza létre vagy nyissa meg a Docker démon konfigurációs fájlját a következő helyen
/etc/docker/daemon.json
: .Állítsa be az alapértelmezett naplózási illesztőprogramot a
local
naplózási illesztőprogramra az alábbi példában látható módon.{ "log-driver": "local" }
Indítsa újra a tárolómotort a módosítások érvénybe lépéséhez.
sudo systemctl restart docker
Tipp.
Ha hibaüzenetet kap a Moby tárolómotor telepítésekor, ellenőrizze a Linux kernelt a Moby kompatibilitása érdekében. Egyes beágyazott eszközgyártók egyéni Linux-kerneleket tartalmazó eszközlemezképeket szállítanak a tárolómotorok kompatibilitásához szükséges funkciók nélkül. Futtassa az alábbi parancsot, amely a Moby által biztosított ellenőrzőkonfigurációs szkriptet használja a kernelkonfiguráció ellenőrzéséhez:
curl -ssl https://raw.githubusercontent.com/moby/moby/master/contrib/check-config.sh -o check-config.sh chmod +x check-config.sh ./check-config.sh
A szkript kimenetében ellenőrizze, hogy az összes elem be
Generally Necessary
van-e kapcsolva, ésNetwork Drivers
engedélyezve van-e. Ha hiányoznak a funkciók, engedélyezze őket úgy, hogy újraépíti a kernelt a forrásból, és kiválasztja a kapcsolódó modulokat a megfelelő kernel .config fájlba való felvételéhez. Hasonlóképpen, ha kernelkonfigurációs generátort használ, példáuldefconfig
vagymenuconfig
, keresse meg és engedélyezze a megfelelő funkciókat, és ennek megfelelően építse újra a kernelt. Az újonnan módosított kernel üzembe helyezése után futtassa újra a check-config szkriptet annak ellenőrzéséhez, hogy az összes szükséges funkció sikeresen engedélyezve lett-e.
Az IoT Edge-futtatókörnyezet telepítése
Az IoT Edge biztonsági démon biztonsági szabványokat biztosít és tart fenn az IoT Edge-eszközön. A démon minden rendszerindításkor elindul, és az IoT Edge többi futtatókörnyezetének elindításával elindítja az eszközt.
Az ebben a szakaszban ismertetett lépések a legújabb verzió internetkapcsolattal rendelkező eszközre való telepítésének tipikus folyamatát jelölik. Ha telepítenie kell egy adott verziót, például egy előzetes verziót, vagy offline állapotban kell telepítenie, kövesse az Offline vagy adott verzió telepítési lépéseit a jelen cikk későbbi részében.
Telepítse az IoT Edge 1.1.* verzióját a libiothsm-std csomaggal együtt:
sudo apt-get update; \
sudo apt-get install iotedge
Feljegyzés
Az IoT Edge 1.1-es verziója az IoT Edge hosszú távú támogatási ága. Ha régebbi verziót futtat, javasoljuk, hogy telepítse vagy frissítse a legújabb javításra, mivel a régebbi verziók már nem támogatottak.
Az eszköz kiépítése a felhőbeli identitással
Miután telepítette a futtatókörnyezetet az eszközön, konfigurálja az eszközt az eszközkiépítési szolgáltatáshoz és az IoT Hubhoz való csatlakozáshoz használt információkkal.
Készítse fel a következő információkat:
- A DPS-azonosító hatókörének értéke
- A létrehozott eszközregisztrációs azonosító
- Az egyéni regisztráció elsődleges kulcsa, vagy egy csoportregisztrációt használó eszközök származtatott kulcsa.
Nyissa meg a konfigurációs fájlt az IoT Edge-eszközön.
sudo nano /etc/iotedge/config.yaml
Keresse meg a fájl kiépítési konfigurációs szakaszát. Bontsa ki a DPS szimmetrikus kulcskiépítési sorait, és győződjön meg arról, hogy a többi kiépítési sor megjegyzéssel van elfűzve.
A
provisioning:
vonalnak nem szabad korábbi szóközzel rendelkeznie, a beágyazott elemeket pedig két szóközzel kell behúzni.# DPS TPM provisioning configuration provisioning: source: "dps" global_endpoint: "https://global.azure-devices-provisioning.net" scope_id: "PASTE_YOUR_SCOPE_ID_HERE" attestation: method: "symmetric_key" registration_id: "PASTE_YOUR_REGISTRATION_ID_HERE" symmetric_key: "PASTE_YOUR_PRIMARY_KEY_OR_DERIVED_KEY_HERE" # always_reprovision_on_startup: true # dynamic_reprovisioning: true
Frissítse az
scope_id
,registration_id
és a DPS éssymmetric_key
az eszköz adatait.Igény szerint az eszköz újraépítési viselkedésének konfigurálásához használja a
always_reprovision_on_startup
vonalakat vagydynamic_reprovisioning
a vonalakat. Ha egy eszköz újraépítésre van beállítva az indításkor, mindig először megpróbál kiépíteni a DPS-t, majd visszaáll a kiépítési biztonsági mentésre, ha ez nem sikerül. Ha egy eszköz dinamikus újraépítésre van beállítva, az IoT Edge (és az összes modul) újraindul és újraépül, ha újraépítési eseményt észlel, például ha az eszközt az egyik IoT Hubról a másikra helyezi át. Az IoT Edge pontosabban az SDK-tól érkező hibákat ellenőrzi vagydevice_disabled
ellenőrzibad_credential
az újraépítési esemény észleléséhez. Az esemény manuális aktiválásához tiltsa le az eszközt az IoT Hubban. További információ: IoT Hub-eszközök újraépítési fogalmai.Indítsa újra az IoT Edge-futtatókörnyezetet, hogy az átvegye az eszközön végrehajtott összes konfigurációs módosítást.
sudo systemctl restart iotedge
Sikeres telepítés ellenőrzése
Ha a futtatókörnyezet sikeresen elindult, bemehet az IoT Hubba, és megkezdheti az IoT Edge-modulok üzembe helyezését az eszközön.
Ellenőrizheti, hogy az eszközkiépítési szolgáltatásban létrehozott egyéni regisztrációt használták-e. Lépjen az eszközkiépítési szolgáltatáspéldányra az Azure Portalon. Nyissa meg a létrehozott egyéni regisztráció regisztrációs adatait. Figyelje meg, hogy a regisztráció állapota ki van rendelve , és az eszközazonosító megjelenik a listában.
Az eszközön az alábbi parancsokkal ellenőrizheti, hogy az IoT Edge sikeresen telepítve van-e és elindult-e.
Ellenőrizze az IoT Edge-szolgáltatás állapotát.
systemctl status iotedge
Vizsgálja meg a szolgáltatásnaplókat.
journalctl -u iotedge --no-pager --no-full
Futó modulok listázása.
iotedge list
Következő lépések
Az eszközkiépítési szolgáltatás regisztrációs folyamata lehetővé teszi az eszközazonosító és az ikereszköz-címkék beállítását az új eszköz üzembe helyezésével egyidejűleg. Ezekkel az értékekkel egyéni eszközöket vagy eszközcsoportokat célozhat meg automatikus eszközkezeléssel. Megtudhatja, hogyan helyezhet üzembe és monitorozhat IoT Edge-modulokat nagy méretekben az Azure Portalon vagy az Azure CLI használatával.