Tworzenie i aprowizowanie urządzenia usługi IoT Edge w systemie Linux przy użyciu kluczy symetrycznych

Dotyczy:IoT Edge 1.4 checkmark IoT Edge 1.4

Ważne

Azure IoT Edge1.4 jest obsługiwaną wersją. Jeśli korzystasz z wcześniejszej wersji, zobacz aktualizację Azure IoT Edge.

Ten artykuł zawiera kompleksowe instrukcje dotyczące rejestrowania i aprowizacji urządzenia usługi IoT Edge z systemem Linux, które obejmuje instalowanie usługi IoT Edge.

Każde urządzenie, które łączy się z centrum IoT Hub , ma identyfikator urządzenia używany do śledzenia komunikacji między chmurą a urządzeniem i chmurą . Urządzenie można skonfigurować przy użyciu informacji o połączeniu, w tym:

  • Nazwa hosta centrum IoT
  • Identyfikator urządzenia
  • Szczegóły uwierzytelniania w celu nawiązania połączenia z usługą IoT Hub

Kroki opisane w tym artykule obejmują proces ręcznej aprowizacji, w którym łączysz jedno urządzenie z centrum IoT Hub. W przypadku aprowizacji ręcznej dostępne są dwie opcje uwierzytelniania urządzeń usługi IoT Edge:

  • Klucze symetryczne: podczas tworzenia nowej tożsamości urządzenia w usłudze IoT Hub usługa tworzy dwa klucze. Umieszczasz jeden z kluczy na urządzeniu i przedstawia klucz do usługi IoT Hub podczas uwierzytelniania.

    Ta metoda uwierzytelniania jest szybsza, aby rozpocząć pracę, ale nie jest tak bezpieczna.

  • Podpis własny X.509: Tworzysz dwa certyfikaty tożsamości X.509 i umieszczasz je na urządzeniu. Podczas tworzenia nowej tożsamości urządzenia w usłudze IoT Hub podajesz odciski palca z obu certyfikatów. Gdy urządzenie uwierzytelnia się w usłudze IoT Hub, przedstawia jeden certyfikat, a usługa IoT Hub sprawdza, czy certyfikat jest zgodny z jego odciskiem palca.

    Ta metoda uwierzytelniania jest bezpieczniejsza i zalecana w scenariuszach produkcyjnych.

W tym artykule opisano używanie kluczy symetrycznych jako metody uwierzytelniania. Jeśli chcesz używać certyfikatów X.509, zobacz Tworzenie i aprowizowanie urządzenia usługi IoT Edge w systemie Linux przy użyciu certyfikatów X.509.

Uwaga

Jeśli masz wiele urządzeń do skonfigurowania i nie chcesz ręcznie aprowizować poszczególnych urządzeń, skorzystaj z jednego z następujących artykułów, aby dowiedzieć się, jak usługa IoT Edge współpracuje z usługą aprowizacji urządzeń usługi IoT Hub:

Wymagania wstępne

W tym artykule pokazano, jak zarejestrować urządzenie usługi IoT Edge i zainstalować usługę IoT Edge (nazywaną również środowiskiem uruchomieniowym usługi IoT Edge) na urządzeniu. Przed zarejestrowaniem i zainstalowaniem urządzenia upewnij się, że masz wybrane narzędzie do zarządzania urządzeniami, na przykład interfejs wiersza polecenia platformy Azure i wymagania dotyczące urządzeń.

Narzędzia do zarządzania urządzeniami

Aby wykonać kroki rejestrowania urządzenia, możesz użyć witryny Azure Portal, programu Visual Studio Code lub interfejsu wiersza polecenia platformy Azure. Każde narzędzie ma własne wymagania wstępne lub może być konieczne zainstalowanie:

Bezpłatne lub standardowe centrum IoT w ramach subskrypcji platformy Azure.

Wymagania dotyczące urządzenia

Urządzenie z systemem Linux X64, ARM32 lub ARM64.

Firma Microsoft publikuje pakiety instalacyjne dla różnych systemów operacyjnych.

Aby uzyskać najnowsze informacje o tym, które systemy operacyjne są obecnie obsługiwane w scenariuszach produkcyjnych, zobacz Obsługiwane systemy usługi Azure IoT Edge.

Rozszerzenia programu Visual Studio Code

Jeśli używasz programu Visual Studio Code, przydatne są rozszerzenia usługi Azure IoT, które ułatwiają proces tworzenia i zarządzania urządzeniami.

Zainstaluj zarówno rozszerzenia usługi Azure IoT Edge, jak i usługi Azure IoT Hub:

Rejestrowanie własnego urządzenia

Aby zarejestrować urządzenie, w zależności od preferencji, możesz użyć witryny Azure Portal, programu Visual Studio Code lub interfejsu wiersza polecenia platformy Azure.

W centrum IoT w witrynie Azure Portal urządzenia usługi IoT Edge są tworzone i zarządzane oddzielnie od urządzeń IoT, które nie są włączone na urządzeniach brzegowych.

  1. Zaloguj się do witryny Azure Portal i przejdź do centrum IoT Hub.

  2. W okienku po lewej stronie wybierz pozycję Urządzenia z menu, a następnie wybierz pozycję Dodaj urządzenie.

  3. Na stronie Tworzenie urządzenia podaj następujące informacje:

    • Utwórz opisowy identyfikator urządzenia, na przykład my-edge-device-1 (wszystkie małe litery). Skopiuj ten identyfikator urządzenia, ponieważ będzie on używany później.
    • Zaznacz pole wyboru Urządzenie usługi IoT Edge.
    • Wybierz pozycję Klucz symetryczny jako typ uwierzytelniania.
    • Użyj ustawień domyślnych, aby automatycznie wygenerować klucze uwierzytelniania, które łączą nowe urządzenie z centrum.
  4. Wybierz pozycję Zapisz.

Nowe urządzenie powinno zostać wyświetlone w centrum IoT Hub.

Po zarejestrowaniu urządzenia w usłudze IoT Hub możesz pobrać informacje dotyczące aprowizacji używane do ukończenia instalacji i aprowizacji środowiska uruchomieniowego usługi IoT Edge w następnym kroku.

Wyświetlanie zarejestrowanych urządzeń i pobieranie informacji o aprowizacji

Urządzenia korzystające z uwierzytelniania klucza symetrycznego wymagają parametry połączenia do ukończenia instalacji i aprowizacji środowiska uruchomieniowego usługi IoT Edge. Parametry połączenia jest generowany dla urządzenia usługi IoT Edge podczas tworzenia urządzenia. W przypadku programu Visual Studio Code i interfejsu wiersza polecenia platformy Azure parametry połączenia znajduje się w danych wyjściowych JSON. Jeśli używasz witryny Azure Portal do tworzenia urządzenia, możesz znaleźć parametry połączenia z samego urządzenia. Po wybraniu urządzenia w centrum IoT Hub zostanie ono wyświetlone jako Primary connection string na stronie urządzenia.

Urządzenia z obsługą krawędzi, które łączą się z centrum IoT Hub, są wyświetlane na stronie Urządzenia centrum IoT Hub. Jeśli masz wiele urządzeń, możesz filtrować listę, wybierając typ Urządzenia usługi Iot Edge, a następnie wybierz pozycję Zastosuj.

Gdy wszystko będzie gotowe do skonfigurowania urządzenia, potrzebujesz parametry połączenia, który łączy urządzenie fizyczne z jego tożsamością w centrum IoT. Urządzenia uwierzytelnione za pomocą kluczy symetrycznych mają dostępne parametry połączenia do kopiowania w portalu. Aby znaleźć parametry połączenia w portalu:

  1. Na stronie Urządzenia wybierz z listy identyfikator urządzenia usługi IoT Edge.
  2. Skopiuj wartość ciągu Połączenie podstawowego lub pomocniczego ciągu Połączenie ion. Dowolny klucz będzie działać.

Instalowanie usługi IoT Edge

W tej sekcji przygotujesz maszynę wirtualną z systemem Linux lub urządzenie fizyczne na potrzeby usługi IoT Edge. Następnie zainstalujesz przeglądarkę IoT Edge.

Uruchom następujące polecenia, aby dodać repozytorium pakietów, a następnie dodaj klucz podpisywania pakietu firmy Microsoft do listy zaufanych kluczy.

Ważne

30 czerwca 2022 r. urządzenie Raspberry Pi OS Stretch zostało wycofane z listy pomocy technicznej systemu operacyjnego Tier 1. Aby uniknąć potencjalnych luk w zabezpieczeniach, zaktualizuj system operacyjny hosta do Bullseye.

Instalowanie można wykonać za pomocą kilku poleceń. Otwórz terminal i uruchom następujące polecenia:

  • 22.04:

    wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb
    
  • 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
    

Aby uzyskać więcej informacji na temat wersji systemu operacyjnego, zobacz Platformy obsługiwane przez usługę Azure IoT Edge.

Uwaga

Pakiety oprogramowania usługi Azure IoT Edge podlegają postanowieniom licencyjnym znajdującym się w każdym pakiecie (usr/share/doc/{package-name} lub LICENSE katalogu). Przeczytaj postanowienia licencyjne przed użyciem pakietu. Instalacja i użycie pakietu stanowi akceptację niniejszych warunków. Jeśli nie zgadzasz się z postanowieniami licencyjnymi, nie używaj tego pakietu.

Instalowanie aparatu kontenera

Usługa Azure IoT Edge korzysta ze środowiska uruchomieniowego kontenera zgodnego z technologią OCI. W przypadku scenariuszy produkcyjnych zalecamy użycie aparatu Moby. Aparat Moby jest jedynym oficjalnie obsługiwanym aparatem kontenerów w usłudze IoT Edge. Obrazy kontenerów platformy Docker CE/EE są zgodne ze środowiskiem uruchomieniowym Moby.

Zainstaluj aparat Moby.

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

Domyślnie aparat kontenera nie ustawia limitów rozmiaru dziennika kontenera. Po pewnym czasie może to prowadzić do zapełnienia urządzenia dziennikami i wyczerpania miejsca na dysku. Można jednak skonfigurować dziennik tak, aby był wyświetlany lokalnie, choć jest opcjonalny. Aby dowiedzieć się więcej na temat konfiguracji rejestrowania, zobacz Lista kontrolna wdrażania produkcyjnego.

W poniższych krokach pokazano, jak skonfigurować kontener do używania local sterownika rejestrowania jako mechanizmu rejestrowania.

  1. Tworzenie lub edytowanie istniejącego pliku konfiguracji demona platformy Docker

    sudo nano /etc/docker/daemon.json
    
  2. Ustaw domyślny sterownik rejestrowania na local sterownik rejestrowania, jak pokazano w przykładzie.

       {
          "log-driver": "local"
       }
    
  3. Uruchom ponownie aparat kontenera, aby zmiany zaczęły obowiązywać.

    sudo systemctl restart docker
    

Instalowanie środowiska uruchomieniowego usługi IoT Edge

Usługa IoT Edge zapewnia i utrzymuje standardy zabezpieczeń na urządzeniu usługi IoT Edge. Usługa uruchamia się na każdym rozruchu i uruchamia urządzenie, uruchamiając resztę środowiska uruchomieniowego usługi IoT Edge.

Uwaga

Począwszy od wersji 1.2, usługa tożsamości IoT obsługuje aprowizowanie tożsamości i zarządzanie nimi dla usługi IoT Edge oraz innych składników urządzeń, które muszą komunikować się z usługą IoT Hub.

Kroki opisane w tej sekcji reprezentują typowy proces instalowania najnowszej wersji usługi IoT Edge na urządzeniu z połączeniem internetowym. Jeśli musisz zainstalować określoną wersję, taką jak wersja wstępna, lub zainstalować ją w trybie offline, wykonaj kroki instalacji w trybie offline lub określonej wersji w dalszej części tego artykułu.

Napiwek

Jeśli masz już urządzenie usługi IoT Edge z starszą wersją i chcesz przeprowadzić uaktualnienie do najnowszej wersji, wykonaj kroki opisane w temacie Aktualizowanie demona zabezpieczeń usługi IoT Edge i środowiska uruchomieniowego. Nowsze wersje są wystarczająco różne od poprzednich wersji usługi IoT Edge, że do uaktualnienia niezbędne są konkretne kroki.

Zainstaluj najnowszą wersję usługi IoT Edge i pakietu usługi tożsamości IoT (jeśli nie jesteś jeszcze aktualny):

  • 22.04:

    sudo apt-get update; \
       sudo apt-get install aziot-edge
    
  • 20.04:

    sudo apt-get update; \
       sudo apt-get install aziot-edge defender-iot-micro-agent-edge
    

Opcjonalny defender-iot-micro-agent-edge pakiet obejmuje mikroa agenta zabezpieczeń usługi Microsoft Defender for IoT, który zapewnia wgląd w zarządzanie stanem zabezpieczeń, luki w zabezpieczeniach, wykrywanie zagrożeń, zarządzanie flotą i nie tylko, aby ułatwić zabezpieczanie urządzeń usługi IoT Edge. Zaleca się zainstalowanie mikro agenta za pomocą agenta usługi Edge w celu włączenia monitorowania zabezpieczeń i wzmacniania zabezpieczeń urządzeń brzegowych. Aby dowiedzieć się więcej o usłudze Microsoft Defender dla IoT, zobacz Co to jest usługa Microsoft Defender dla IoT dla konstruktorów urządzeń.

Aprowizuj urządzenie przy użyciu tożsamości w chmurze

Teraz, gdy aparat kontenera i środowisko uruchomieniowe usługi IoT Edge są zainstalowane na urządzeniu, możesz przystąpić do konfigurowania urządzenia przy użyciu informacji o tożsamości i uwierzytelnianiu w chmurze.

Urządzenie usługi IoT Edge można skonfigurować przy użyciu uwierzytelniania klucza symetrycznego przy użyciu następującego polecenia:

sudo iotedge config mp --connection-string 'PASTE_DEVICE_CONNECTION_STRING_HERE'

To iotedge config mp polecenie tworzy plik konfiguracji na urządzeniu i wprowadza parametry połączenia w pliku konfiguracji.

  1. Zastosuj zmiany konfiguracji.

    sudo iotedge config apply
    
  2. Aby wyświetlić plik konfiguracji, możesz go otworzyć:

    sudo nano /etc/aziot/config.toml
    

Wdrażanie modułów

Aby wdrożyć moduły usługi IoT Edge, przejdź do centrum IoT Hub w witrynie Azure Portal, a następnie:

  1. Wybierz pozycję Urządzenia z menu usługi IoT Hub.

  2. Wybierz urządzenie, aby otworzyć jego stronę.

  3. Wybierz kartę Ustaw moduły .

  4. Ponieważ chcemy wdrożyć domyślne moduły usługi IoT Edge (edgeAgent i edgeHub), nie musimy dodawać żadnych modułów do tego okienka, dlatego wybierz pozycję Przejrzyj i utwórz u dołu.

  5. Zostanie wyświetlone potwierdzenie JSON modułów. Wybierz pozycję Utwórz , aby wdrożyć moduły.

Aby uzyskać więcej informacji, zobacz Wdrażanie modułu.

Weryfikowanie pomyślnej konfiguracji

Sprawdź, czy środowisko uruchomieniowe zostało pomyślnie zainstalowane i skonfigurowane na urządzeniu usługi IoT Edge.

Napiwek

Uruchomienie poleceń iotedge wymaga podniesionych uprawnień. Po wylogowaniu się z komputera i ponownym zalogowaniu się do niego po raz pierwszy od zainstalowania środowiska uruchomieniowego usługi IoT Edge Twoje uprawnienia zostaną automatycznie zaktualizowane. Do tego czasu użyj sudo polecenia przed poleceniami.

  1. Sprawdź, czy usługa systemowa usługi IoT Edge jest uruchomiona.

    sudo iotedge system status
    

    Pomyślna odpowiedź stanu pokazuje aziot usługi jako uruchomione lub gotowe.

  2. Jeśli potrzebujesz rozwiązać problem z usługą, pobierz jej dzienniki.

    sudo iotedge system logs
    
  3. check Użyj narzędzia , aby zweryfikować konfigurację i stan połączenia urządzenia.

    sudo iotedge check
    

    Możesz oczekiwać zakresu odpowiedzi, które mogą zawierać ok (zielony), Ostrzeżenie (żółty) lub Błąd (czerwony). Aby uzyskać informacje na temat rozwiązywania typowych błędów, zobacz Rozwiązania typowych problemów z usługą Azure IoT Edge.

    Screenshot of sample responses from the check command.

    Napiwek

    Zawsze używaj sudo narzędzia do sprawdzania, nawet po zaktualizowaniu uprawnień. Narzędzie wymaga podniesionych uprawnień, aby uzyskać dostęp do pliku konfiguracji w celu zweryfikowania stanu konfiguracji.

    Uwaga

    Na nowo aprowizowanych urządzeniach może zostać wyświetlony błąd związany z usługą IoT Edge Hub:

    × gotowości produkcyjnej: katalog magazynu usługi Edge Hub jest utrwalany w systemie plików hosta — błądNie można sprawdzić bieżącego stanu kontenera edgeHub

    Ten błąd jest oczekiwany na nowo aprowizowanych urządzeniach, ponieważ moduł usługi IoT Edge Hub nie jest jeszcze uruchomiony. Upewnij się, że moduły usługi IoT Edge zostały wdrożone w poprzednich krokach. Wdrożenie usuwa ten błąd.

    Alternatywnie może zostać wyświetlony kod stanu jako 417 -- The device's deployment configuration is not set. Po wdrożeniu modułów ten stan zmieni się.

  4. Po uruchomieniu usługi po raz pierwszy powinien zostać wyświetlony tylko uruchomiony moduł edgeAgent . Moduł edgeAgent działa domyślnie i pomaga zainstalować i uruchomić dodatkowe moduły wdrażane na urządzeniu.

    Sprawdź, czy urządzenie i moduły są wdrażane i uruchomione, wyświetlając stronę urządzenia w witrynie Azure Portal.

    Screenshot of IoT Edge modules deployed and running confirmation in the Azure portal.

    Po wdrożeniu i uruchomieniu modułów wyświetl je na urządzeniu lub maszynie wirtualnej za pomocą następującego polecenia:

    sudo iotedge list
    

Instalacja w trybie offline lub określonej wersji (opcjonalnie)

Kroki opisane w tej sekcji dotyczą scenariuszy, które nie są objęte standardowymi krokami instalacji. Mogą to być na przykład:

  • Instalowanie usługi IoT Edge w trybie offline
  • Instalowanie wersji kandydata do wydania

Wykonaj kroki opisane w tej sekcji, jeśli chcesz zainstalować określoną wersję środowiska uruchomieniowego usługi Azure IoT Edge, która nie jest dostępna za pośrednictwem menedżera pakietów. Lista pakietów firmy Microsoft zawiera tylko ograniczony zestaw najnowszych wersji i ich podrzędnych wersji, dlatego te kroki dotyczą wszystkich osób, które chcą zainstalować starszą wersję lub wersję kandydata do wydania.

Jeśli używasz przystawek systemu Ubuntu, możesz pobrać przystawkę i zainstalować ją w trybie offline. Aby uzyskać więcej informacji, zobacz Pobieranie przystawek i instalowanie w trybie offline.

Za pomocą poleceń curl można kierować pliki składników bezpośrednio z repozytorium GitHub usługi IoT Edge.

Uwaga

Jeśli na urządzeniu jest obecnie uruchomiona usługa IoT Edge w wersji 1.1 lub starszej, odinstaluj pakiety iotedge i libiothsm-std przed wykonaniem kroków opisanych w tej sekcji. Aby uzyskać więcej informacji, zobacz Update from 1.0 or 1.1 to latest release (Aktualizacja z wersji 1.0 lub 1.1 do najnowszej).

  1. Przejdź do wersji usługi Azure IoT Edge i znajdź wersję wydania, którą chcesz kierować.

  2. Rozwiń sekcję Zasoby dla tej wersji.

  3. Każda wersja powinna zawierać nowe pliki dla usługi IoT Edge i usługi tożsamości. Jeśli zamierzasz zainstalować usługę IoT Edge na urządzeniu w trybie offline, pobierz te pliki z wyprzedzeniem. W przeciwnym razie użyj następujących poleceń, aby zaktualizować te składniki.

    1. Znajdź plik aziot-identity-service zgodny z architekturą urządzenia usługi IoT Edge. Kliknij prawym przyciskiem myszy link do pliku i skopiuj adres linku.

    2. Użyj skopiowanego linku w poniższym poleceniu, aby zainstalować wersję usługi tożsamości:

      curl -L <identity service link> -o aziot-identity-service.deb && sudo apt-get install ./aziot-identity-service.deb
      

    1. Znajdź plik aziot-edge zgodny z architekturą urządzenia usługi IoT Edge. Kliknij prawym przyciskiem myszy link do pliku i skopiuj adres linku.

    2. Użyj skopiowanego linku w poniższym poleceniu, aby zainstalować wersję usługi IoT Edge.

      curl -L <iotedge link> -o aziot-edge.deb && sudo apt-get install ./aziot-edge.deb
      

Odinstalowywanie usługi IoT Edge

Jeśli chcesz usunąć instalację usługi IoT Edge z urządzenia, użyj następujących poleceń.

Usuń środowisko uruchomieniowe usługi IoT Edge.

sudo apt-get autoremove --purge aziot-edge

Pomiń flagę, --purge jeśli planujesz ponownie zainstalować usługę IoT Edge i używać tych samych informacji o konfiguracji w przyszłości. Flaga --purge usuwa wszystkie pliki skojarzone z usługą IoT Edge, w tym pliki konfiguracji.

Po usunięciu środowiska uruchomieniowego usługi IoT Edge wszystkie utworzone przez niego kontenery zostaną zatrzymane, ale nadal istnieją na urządzeniu. Wyświetl wszystkie kontenery, aby zobaczyć, które z nich pozostają.

sudo docker ps -a

Usuń kontenery z urządzenia, w tym dwa kontenery środowiska uruchomieniowego.

sudo docker rm -f <container ID>

Na koniec usuń środowisko uruchomieniowe kontenera z urządzenia.

sudo apt-get autoremove --purge moby-engine

Następne kroki

Kontynuuj wdrażanie modułów usługi IoT Edge, aby dowiedzieć się, jak wdrażać moduły na urządzeniu.