Sdílet prostřednictvím


Vytvoření a zřízení zařízení IoT Edge v Linuxu pomocí symetrických klíčů

Platí pro: Ikona Ano IoT Edge 1.1

Důležité

Datum ukončení podpory ioT Edge 1.1 bylo 13. prosince 2022. Informace o způsobu podpory tohoto produktu, služby, technologie nebo rozhraní API najdete v tématu věnovaném životnímu cyklu produktů Microsoftu. Další informace o aktualizaci na nejnovější verzi IoT Edge najdete v tématu Aktualizace IoT Edge.

Tento článek obsahuje kompletní pokyny pro registraci a zřízení zařízení IoT Edge s Linuxem, včetně instalace IoT Edge.

Každé zařízení, které se připojuje k centru IoT, má ID zařízení, které se používá ke sledování komunikace typu cloud-zařízení nebo komunikace typu zařízení-cloud. Zařízení nakonfigurujete s informacemi o připojení, mezi které patří název hostitele centra IoT, ID zařízení a informace, které zařízení používá k ověření ve službě IoT Hub.

Kroky v tomto článku vás provedou procesem označovaným jako ruční zřizování, kdy připojíte jedno zařízení ke svému centru IoT. Pro ruční zřizování máte dvě možnosti ověřování zařízení IoT Edge:

  • Symetrické klíče: Když ve službě IoT Hub vytvoříte novou identitu zařízení, služba vytvoří dva klíče. Umístíte na zařízení jeden z klíčů a při ověřování ho předá službě IoT Hub.

    Tato metoda ověřování je rychlejší, než začít, ale není tak zabezpečená.

  • X.509 podepsané svým držitelem: Vytvoříte dva certifikáty identity X.509 a umístíte je do zařízení. Když ve službě IoT Hub vytvoříte novou identitu zařízení, poskytnete kryptografické otisky z obou certifikátů. Když se zařízení ověří ve službě IoT Hub, zobrazí jeden certifikát a IoT Hub ověří, že certifikát odpovídá jeho kryptografickému otisku.

    Tato metoda ověřování je bezpečnější a doporučuje se pro produkční scénáře.

Tento článek popisuje použití symetrických klíčů jako metody ověřování. Pokud chcete používat certifikáty X.509, přečtěte si téma Vytvoření a zřízení zařízení IoT Edge v Linuxu pomocí certifikátů X.509.

Poznámka:

Pokud máte mnoho zařízení k nastavení a nechcete je zřizovat ručně, pomocí jednoho z následujících článků se dozvíte, jak IoT Edge funguje se službou zřizování zařízení IoT Hub:

Požadavky

Tento článek popisuje registraci zařízení IoT Edge a instalaci IoT Edge na zařízení. Tyto úlohy mají různé požadavky a nástroje, které je používají k jejich provedení. Než budete pokračovat, ujistěte se, že máte probírané všechny požadavky.

Nástroje pro správu zařízení

Postup registrace zařízení můžete provést pomocí webu Azure Portal, editoru Visual Studio Code nebo Azure CLI . Každý nástroj má vlastní požadavky:

Bezplatné nebo standardní centrum IoT ve vašem předplatném Azure.

Požadavky na zařízení

Zařízení S Linuxem X64, ARM32 nebo ARM64.

Microsoft publikuje instalační balíčky pro různé operační systémy.

Nejnovější informace o tom, které operační systémy jsou aktuálně podporovány v produkčních scénářích, najdete v tématu Podporované systémy Azure IoT Edge.

Registrace zařízení

K registraci zařízení můžete použít Azure Portal, Visual Studio Code nebo Azure CLI v závislosti na vašich preferencích.

V centru IoT na webu Azure Portal se zařízení IoT Edge vytvářejí a spravují odděleně od zařízení IoT, která nejsou povolená.

  1. Přihlaste se k webu Azure Portal a přejděte do centra IoT.

  2. V levém podokně vyberte v nabídce zařízení a pak vyberte Přidat zařízení.

  3. Na stránce Vytvořit zařízení zadejte následující informace:

    • Vytvořte popisné ID zařízení. Poznamenejte si toto ID zařízení, protože ho použijete později.
    • Zaškrtněte políčko Zařízení IoT Edge.
    • Jako typ ověřování vyberte symetrický klíč .
    • Pomocí výchozího nastavení můžete automaticky generovat ověřovací klíče a připojit nové zařízení k centru.
  4. Zvolte Uložit.

Teď, když máte zařízení zaregistrované ve službě IoT Hub, načtěte informace, které používáte k dokončení instalace a zřizování modulu runtime IoT Edge.

Zobrazení registrovaných zařízení a načtení informací o zřizování

Zařízení, která používají symetrické ověřování klíčů, potřebují k dokončení instalace a zřizování modulu runtime IoT Edge své připojovací řetězec.

Hraniční zařízení, která se připojují k centru IoT, jsou uvedená na stránce Zařízení . Seznam můžete filtrovat podle typu Zařízení Iot Edge.

Snímek obrazovky znázorňuje, jak zobrazit zařízení na webu Azure Portal ve službě IoT Hub

Až budete připravení zařízení nastavit, budete potřebovat připojovací řetězec, která propojí fyzické zařízení s jeho identitou v IoT Hubu.

Zařízení, která se ověřují pomocí symetrických klíčů, mají své připojovací řetězec k dispozici ke kopírování na portálu.

  1. Na stránce Zařízení na portálu vyberte ze seznamu ID zařízení IoT Edge.
  2. Zkopírujte hodnotu primárního připojovacího řetězce nebo sekundárního připojovacího řetězce.

Instalace IoT Edge

V této části připravíte virtuální počítač s Linuxem nebo fyzické zařízení pro IoT Edge. Pak nainstalujete IoT Edge.

Spuštěním následujících příkazů přidejte úložiště balíčků a potom přidejte podpisový klíč balíčku Microsoftu do seznamu důvěryhodných klíčů.

Důležité

30. června 2022 Raspberry Pi OS Stretch byl vyřazen ze seznamu podpory operačního systému vrstvy 1. Abyste se vyhnuli potenciálním ohrožením zabezpečení, aktualizujte hostitelský operační systém na Bullseye.

Instalaci je možné provést několika příkazy. Otevřete terminál a spusťte následující příkazy:

  • 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
    

Poznámka:

Softwarové balíčky Azure IoT Edge podléhají licenčním podmínkám umístěným v jednotlivých balíčcích (usr/share/doc/{package-name} nebo adresáři LICENSE ). Přečtěte si licenční podmínky před použitím balíčku. Vaše instalace a použití balíčku představuje vaše přijetí těchto podmínek. Pokud s licenčními podmínkami nesouhlasíte, nepoužívejte tento balíček.

Instalace modulu kontejneru

Azure IoT Edge spoléhá na modul runtime kontejneru kompatibilní s OCI. Pro produkční scénáře doporučujeme použít modul Moby. Modul Moby je jediným kontejnerovým modulem oficiálně podporovaným v IoT Edge. Image kontejnerů Dockeru CE/EE jsou kompatibilní s modulem runtime Moby.

Nainstalujte modul Moby.

sudo apt-get update; \
  sudo apt-get install moby-engine

Po úspěšné instalaci modulu Moby ho nakonfigurujte tak, aby jako mechanismus protokolování používal local ovladač protokolování. Další informace o konfiguraci protokolování najdete v kontrolním seznamu produkčního nasazení.

  • Vytvořte nebo otevřete konfigurační soubor démona Dockeru na adrese /etc/docker/daemon.json.

  • Nastavte výchozí ovladač protokolování na local ovladač protokolování, jak je znázorněno v následujícím příkladu.

       {
          "log-driver": "local"
       }
    
  • Restartujte modul kontejneru, aby se změny projevily.

    sudo systemctl restart docker
    

    Tip

    Pokud při instalaci modulu kontejneru Moby dojde k chybám, ověřte kompatibilitu jádra Linuxu pro Moby. Někteří výrobci vložených zařízení dodávají image zařízení, která obsahují vlastní linuxová jádra bez funkcí potřebných pro kompatibilitu modulu kontejnerů. Spuštěním následujícího příkazu, který používá skript check-config od Moby, zkontrolujte konfiguraci jádra:

    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
    

    Ve výstupu skriptu zkontrolujte, jestli jsou všechny položky v části Generally Necessary a Network Drivers jsou povolené. Pokud vám chybí funkce, povolte je opětovným sestavením jádra ze zdroje a výběrem přidružených modulů pro zahrnutí do příslušného jádra .config. Podobně pokud používáte generátor konfigurace jádra, například defconfig nebo menuconfig, vyhledejte a povolte příslušné funkce a odpovídajícím způsobem znovu sestavte jádro. Po nasazení nově upraveného jádra znovu spusťte skript check-config a ověřte, že všechny požadované funkce byly úspěšně povolené.

Instalace modulu runtime IoT Edge

Proces démon zabezpečení IoT Edge poskytuje a udržuje standardy zabezpečení na zařízení IoT Edge. Proces démon se spustí při každém spuštění a spustí zařízení spuštěním zbytku modulu runtime IoT Edge.

Kroky v této části představují typický proces instalace nejnovější verze na zařízení s připojením k internetu. Pokud potřebujete nainstalovat konkrétní verzi, jako je předběžná verze, nebo je potřeba ji nainstalovat offline, postupujte podle pokynů pro offline nebo konkrétní instalaci verze dále v tomto článku.

Nainstalujte IoT Edge verze 1.1.* spolu s balíčkem libiothsm-std :

sudo apt-get update; \
  sudo apt-get install iotedge

Poznámka:

IoT Edge verze 1.1 je dlouhodobá větev ioT Edge. Pokud používáte starší verzi, doporučujeme nainstalovat nebo aktualizovat nejnovější opravu, protože starší verze už nejsou podporované.

Zřízení zařízení s využitím cloudové identity

Teď, když je modul kontejneru a modul runtime IoT Edge nainstalované na vašem zařízení, jste připraveni na další krok, kterým je nastavení zařízení s cloudovou identitou a ověřovacími informacemi.

Na zařízení IoT Edge otevřete konfigurační soubor.

sudo nano /etc/iotedge/config.yaml

Vyhledejte konfigurace zřizování souboru a odkomentujte konfiguraci ručního zřizování pomocí oddílu připojovací řetězec, pokud ještě není komentář.

# Manual provisioning configuration using a connection string
provisioning:
source: "manual"
device_connection_string: "ADD_DEVICE_CONNECTION_STRING_HERE"

Aktualizujte hodnotu device_connection_string pomocí připojovací řetězec ze zařízení IoT Edge. Ujistěte se, že jsou všechny ostatní oddíly zřizování okomentované. Ujistěte se, že zřizování: řádek neobsahuje žádné předchozí prázdné znaky a že vnořené položky jsou odsazené dvěma mezerami.

Obsah schránky vložíte do Nano Shift+Right Click nebo stisknete Shift+Insert.

Soubor uložte a zavřete.

CTRL + X, , YEnter

Po zadání informací o zřizování v konfiguračním souboru restartujte proces démona:

sudo systemctl restart iotedge

Ověření úspěšné konfigurace

Ověřte, že se modul runtime úspěšně nainstaloval a nakonfiguroval na zařízení IoT Edge.

Tip

Ke spouštění příkazů iotedge potřebujete zvýšená oprávnění. Vaše oprávnění se automaticky aktualizují, jakmile se po instalaci modulu runtime IoT Edge odhlásíte z počítače a poprvé se k němu opět přihlásíte. Do té doby použijte sudo před příkazy.

Zkontrolujte, jestli je spuštěná systémová služba IoT Edge.

sudo systemctl status iotedge

Pokud potřebujete řešit potíže se službou, načtěte protokoly služby.

journalctl -u iotedge

check Pomocí nástroje ověřte konfiguraci a stav připojení zařízení.

sudo iotedge check

Tip

Vždy se používá sudo ke spuštění nástroje pro kontrolu, a to i po aktualizaci oprávnění. Nástroj potřebuje zvýšená oprávnění pro přístup ke konfiguračnímu souboru, aby ověřil stav konfigurace.

Poznámka:

Na nově zřízeném zařízení se může zobrazit chyba související se službou IoT Edge Hub:

× provozní připravenosti: Adresář úložiště Edge Hubu je trvalý v systému souborů hostitele – chyba

Nepodařilo se zkontrolovat aktuální stav kontejneru EdgeHub.

Tato chyba se očekává na nově zřízeném zařízení, protože modul IoT Edge Hub není spuštěný. Pokud chcete tuto chybu vyřešit, nastavte v IoT Hubu moduly pro zařízení a vytvořte nasazení. Vytvoření nasazení pro zařízení spustí moduly na zařízení, včetně modulu IoT Edge Hubu.

Zobrazte všechny moduly spuštěné na vašem zařízení IoT Edge. Při prvním spuštění služby byste měli vidět pouze spuštěný modul edgeAgent . Modul edgeAgent běží ve výchozím nastavení a pomáhá nainstalovat a spustit všechny další moduly, které nasadíte do zařízení.

sudo iotedge list

Když vytvoříte nové zařízení IoT Edge, zobrazí se na webu Azure Portal stavový kód 417 -- The device's deployment configuration is not set . Tento stav je normální a znamená, že zařízení je připravené přijmout nasazení modulu.

Offline nebo konkrétní instalace verze (volitelné)

Kroky v této části jsou určené pro scénáře, na které se nevztahují standardní kroky instalace. Může to zahrnovat:

  • Instalace IoT Edge v offline režimu
  • Instalace verze Candidate

Pokud chcete nainstalovat konkrétní verzi modulu runtime Azure IoT Edge, která není dostupná prostřednictvím správce balíčků, postupujte podle kroků v této části. Seznam balíčků Společnosti Microsoft obsahuje pouze omezenou sadu posledních verzí a jejich dílčích verzí, takže tyto kroky jsou určené pro každého, kdo chce nainstalovat starší verzi nebo verzi Release Candidate.

Pomocí příkazů curl můžete soubory komponent cílit přímo z úložiště GitHub ioT Edge.

  1. Přejděte do verzí Azure IoT Edge a vyhledejte verzi verze, na kterou chcete cílit.

  2. Rozbalte část Prostředky pro tuto verzi.

  3. Každá verze by měla mít nové soubory pro démon zabezpečení IoT Edge a hsmlib. Pokud na offline zařízení nainstalujete IoT Edge, stáhněte si tyto soubory předem. V opačném případě tyto komponenty aktualizujte pomocí následujících příkazů.

    1. Vyhledejte soubor libiothsm-std, který odpovídá architektuře zařízení IoT Edge. Klikněte pravým tlačítkem myši na odkaz na soubor a zkopírujte adresu odkazu.

    2. Pomocí zkopírovaného odkazu v následujícím příkazu nainstalujte tuto verzi knihovny hsmlib:

      curl -L <libiothsm-std_link> -o libiothsm-std.deb && sudo apt-get install ./libiothsm-std.deb
      
    3. Vyhledejte soubor iotedge, který odpovídá architektuře zařízení IoT Edge. Klikněte pravým tlačítkem myši na odkaz na soubor a zkopírujte adresu odkazu.

    4. Pomocí zkopírovaného odkazu v následujícím příkazu nainstalujte tuto verzi démona zabezpečení IoT Edge.

      curl -L iotedge_link_here -o iotedge.deb && sudo apt-get install ./iotedge.deb
      

Teď, když je na vašem zařízení nainstalovaný modul kontejneru a modul runtime IoT Edge, jste připraveni na další krok, kterým je zřízení zařízení s jeho cloudovou identitou.

Odinstalace IoT Edge

Pokud chcete ze zařízení odebrat instalaci IoT Edge, použijte následující příkazy.

Odeberte modul runtime IoT Edge.

sudo apt-get autoremove iotedge

Po odebrání modulu runtime IoT Edge se zastaví všechny kontejnery, které vytvořil, ale na vašem zařízení stále existují. Zobrazte všechny kontejnery a podívejte se, které z nich zůstanou.

sudo docker ps -a

Odstraňte kontejnery ze zařízení, včetně těchto dvou kontejnerů modulu runtime.

sudo docker rm -f <container name>

Nakonec ze zařízení odeberte modul runtime kontejneru.

sudo apt-get autoremove --purge moby-engine