Udostępnij przez


Tworzenie i aprowizowanie urządzeń usługi IoT Edge na dużą skalę w systemie Linux przy użyciu klucza symetrycznego

Dotyczy:ikona potwierdzenia IoT Edge 1.1

Ważne

Data zakończenia wsparcia usługi IoT Edge 1.1 wynosiła 13 grudnia 2022 r.. Zapoznaj się z cyklem życia produktów firmy Microsoft, aby uzyskać informacje na temat sposobu obsługi tego produktu lub interfejsu API albo tej usługi lub technologii. Aby uzyskać więcej informacji na temat aktualizowania do najnowszej wersji usługi IoT Edge, zobacz Update IoT Edge.

** Ten artykuł zawiera instrukcje krok po kroku dotyczące pełnego automatycznego dostarczania jednego lub więcej urządzeń IoT Edge z systemem Linux przy użyciu kluczy symetrycznych. Urządzenia Azure IoT Edge można automatycznie aprowizować za pomocą usługi Azure IoT Hub device provisioning service (DPS). Jeśli nie znasz procesu automatycznego provisioningu, przed kontynuowaniem zapoznaj się z omówieniem provisioningu.

Zadania są następujące:

  1. Utwórz rejestrację indywidualną dla jednego urządzenia lub rejestracji grupowej dla zestawu urządzeń.
  2. Zainstaluj środowisko uruchomieniowe usługi IoT Edge i połącz się z usługą IoT Hub.

Uwierzytelnianie klucza symetrycznego to proste podejście do uwierzytelniania urządzenia przy użyciu wystąpienia usługi aprowizacji urządzeń. Ta metoda zaświadczania reprezentuje środowisko "Hello world" dla deweloperów, którzy są nowi w aprowizacji urządzeń lub nie mają rygorystycznych wymagań dotyczących zabezpieczeń. Zaświadczania urządzeń przy użyciu certyfikatów TPM lub X.509 są bezpieczniejsze i powinny być używane do bardziej rygorystycznych wymagań dotyczących zabezpieczeń.

Wymagania wstępne

Zasoby w chmurze

  • Aktywne centrum IoT
  • Instancja usługi aprowizacji urządzeń IoT Hub na platformie Azure, połączona z Twoim IoT Hub.

Wymagania dotyczące urządzenia

Fizyczne lub wirtualne urządzenie z systemem Linux, które ma być urządzeniem usługi IoT Edge.

Aby zidentyfikować każde urządzenie, należy zdefiniować unikatowyidentyfikator rejestracji. Możesz użyć adresu MAC, numeru seryjnego lub wszelkich unikatowych informacji z urządzenia. Można na przykład użyć kombinacji adresu MAC i numeru seryjnego tworzącego następujący ciąg dla identyfikatora rejestracji: sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6. Prawidłowe znaki to małe litery alfanumeryczne i kreska (-).

Utwórz rejestrację DPS

Utwórz rejestrację, aby aprowizować co najmniej jedno urządzenie za pośrednictwem usługi DPS.

Jeśli chcesz skonfigurować pojedyncze urządzenie IoT Edge, utwórz indywidualną rejestrację. Jeśli potrzebujesz aprowizacji wielu urządzeń, wykonaj kroki tworzenia grupowej rejestracji w usłudze DPS.

Podczas tworzenia rejestracji w usłudze DPS możesz zadeklarować początkowy stan bliźniaka urządzenia. W modelu bliźniaczym urządzenia można ustawić tagi, aby grupować urządzenia według dowolnej metryki potrzebnej w rozwiązaniu, takiej jak region, środowisko, lokalizacja czy typ urządzenia. Te tagi służą do tworzenia wdrożeń automatycznych.

Aby uzyskać więcej informacji na temat rejestracji w usłudze dostarczania urządzeń, zobacz Jak zarządzać rejestracjami urządzeń.

Utwórz indywidualną rejestrację DPS

Wskazówka

Kroki opisane w tym artykule dotyczą witryny Azure Portal, ale można również tworzyć rejestracje indywidualne przy użyciu interfejsu wiersza polecenia platformy Azure. Aby uzyskać więcej informacji, zobacz az iot dps enrollment. W ramach polecenia CLI użyj flagi edge-enabled, aby określić, że rejestracja dotyczy urządzenia IoT Edge.

  1. W witrynie Azure portal przejdź do wystąpienia usługi aprowizacji urządzeń IoT Hub.

  2. W obszarze Ustawienia wybierz pozycję Zarządzaj rejestracjami.

  3. Wybierz pozycję Dodaj rejestrację indywidualną, a następnie wykonaj następujące kroki, aby skonfigurować rejestrację:

    1. Wybierz Klucz symetryczny w obszarze Mechanizm.

    2. Podaj unikatowy identyfikator rejestracji dla urządzenia.

    3. Opcjonalnie podaj identyfikator urządzenia IoT Hub dla swojego urządzenia. Identyfikatory urządzeń umożliwiają określanie celu poszczególnych urządzeń na potrzeby wdrożenia modułu. Jeśli nie podasz identyfikatora urządzenia, zostanie użyty identyfikator rejestracji.

    4. Wybierz pozycję True , aby zadeklarować, że rejestracja dotyczy urządzenia usługi IoT Edge.

    5. Opcjonalnie dodaj wartość tagu do Początkowego Stanu Bliźniaczego Urządzenia. Tagów można używać do grup docelowych urządzeń na potrzeby wdrażania modułu. Przykład:

      {
         "tags": {
            "environment": "test"
         },
         "properties": {
            "desired": {}
         }
      }
      
    6. Wybierz Zapisz.

  4. Skopiuj wartość klucza podstawowego indywidualnej rejestracji do użycia podczas instalowania środowiska uruchomieniowego IoT Edge.

Teraz, gdy rejestracja istnieje dla tego urządzenia, środowisko uruchomieniowe usługi IoT Edge może automatycznie aprowizować urządzenie podczas instalacji.

Instalowanie usługi IoT Edge

W tej sekcji przygotujesz maszynę wirtualną z systemem Linux lub urządzenie fizyczne dla 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:

  • 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
    

Uwaga / Notatka

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.

Zainstaluj silnik kontenera

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

Zainstaluj silnik Moby.

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

Po pomyślnym zainstalowaniu silnika Moby skonfiguruj go do używania sterownika logowania local jako mechanizmu logującego. Aby dowiedzieć się więcej na temat konfiguracji rejestrowania, zobacz Lista kontrolna wdrażania produkcyjnego.

  • Utwórz lub otwórz plik konfiguracji demona platformy Docker pod adresem /etc/docker/daemon.json.

  • Ustaw domyślny sterownik rejestrowania na sterownik rejestrowania local, jak pokazano w poniższym przykładzie.

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

    sudo systemctl restart docker
    

    Wskazówka

    Jeśli podczas instalowania silnika kontenerowego Moby wystąpią błędy, sprawdź zgodność jądra systemu Linux z Moby. Niektórzy producenci urządzeń wbudowanych dostarczają obrazy urządzeń, które zawierają niestandardowe jądra systemu Linux, bez funkcji wymaganych do zgodności z silnikiem kontenerów. Uruchom następujące polecenie, które używa skryptu check-config dostarczonego przez program Moby, aby sprawdzić konfigurację 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
    

    W danych wyjściowych skryptu sprawdź, czy wszystkie elementy w obszarze Generally Necessary i Network Drivers są włączone. Jeśli brakuje funkcji, włącz je, ponownie skompilując jądro ze źródła i wybierając skojarzone moduły do włączenia w odpowiedniej konfiguracji jądra. Podobnie, jeśli używasz generatora konfiguracji jądra, takiego jak defconfig lub menuconfig, znajdź i włącz odpowiednie funkcje i odpowiednio skompiluj jądro. Po wdrożeniu nowo zmodyfikowanego jądra ponownie uruchom skrypt check-config, aby sprawdzić, czy wszystkie wymagane funkcje zostały pomyślnie włączone.

Instalowanie środowiska uruchomieniowego usługi IoT Edge

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

Kroki opisane w tej sekcji reprezentują typowy proces instalowania najnowszej wersji 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.

Zainstaluj program IoT Edge w wersji 1.1.* wraz z pakietem libiothsm-std:

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

Uwaga / Notatka

Usługa IoT Edge w wersji 1.1 to gałąź wsparcia długoterminowego usługi IoT Edge. Jeśli korzystasz ze starszej wersji, zalecamy zainstalowanie lub zaktualizowanie do najnowszej poprawki, ponieważ starsze wersje nie są już obsługiwane.

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

Po zainstalowaniu środowiska uruchomieniowego na urządzeniu skonfiguruj urządzenie przy użyciu informacji używanych do nawiązywania połączenia z usługą aprowizacji urządzeń i usługą IoT Hub.

Przygotuj następujące informacje:

  • Wartość zakresu identyfikatora usługi DPS
  • Utworzony identyfikator rejestracji urządzenia
  • Klucz podstawowy z rejestracji indywidualnej lub klucz pochodny dla urządzeń korzystających z rejestracji grupy.
  1. Otwórz plik konfiguracji na urządzeniu usługi IoT Edge.

    sudo nano /etc/iotedge/config.yaml
    
  2. Znajdź sekcję konfiguracji aprowizacji pliku. Odkomentuj wiersze dotyczące aprowizacji klucza symetrycznego DPS i upewnij się, że wszystkie inne linie aprowizacji są zakomentowane.

    Wiersz provisioning: nie powinien mieć poprzedzających odstępów, a zagnieżdżone elementy powinny być wcięte o dwie spacje.

    # 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
    
  3. Zaktualizuj wartości scope_id, registration_id i symmetric_key swoimi informacjami o DPS i urządzeniu.

  4. Alternatywnie, użyj linii always_reprovision_on_startup lub dynamic_reprovisioning, aby ustawić proces ponownej konfiguracji urządzenia. Jeśli urządzenie jest skonfigurowane do ponownej konfiguracji podczas uruchamiania, zawsze najpierw spróbuje skonfigurować się za pomocą usługi DPS, a jeśli to się nie powiedzie, skorzysta z zapasowych ustawień konfiguracyjnych. Jeśli ustawiono urządzenie na dynamiczne ponowne aprowizowanie, usługa IoT Edge (wraz ze wszystkimi modułami) zostanie ponownie uruchomiona i aprowizowana, jeśli zostanie wykryte zdarzenie ponownej aprowizacji, na przykład gdy urządzenie zostanie przeniesione z jednego hubu IoT do innego. W szczególności usługa IoT Edge sprawdza błędy bad_credential lub device_disabled z zestawu SDK w celu wykrycia zdarzenia ponownej aprowizacji. Aby ręcznie wyzwolić to zdarzenie, wyłącz urządzenie w usłudze IoT Hub. Aby uzyskać więcej informacji, zobacz Koncepty dotyczące ponownej aprowizacji urządzeń usługi IoT Hub.

  5. Uruchom ponownie środowisko uruchomieniowe usługi IoT Edge, aby pobrać wszystkie zmiany konfiguracji wprowadzone na urządzeniu.

    sudo systemctl restart iotedge
    

Weryfikowanie pomyślnej instalacji

Jeśli środowisko uruchomieniowe zostało pomyślnie uruchomione, możesz przejść do usługi IoT Hub i rozpocząć wdrażanie modułów usługi IoT Edge na urządzeniu.

Możesz zweryfikować, czy utworzona przez Ciebie rejestracja indywidualna została użyta w usłudze zarządzania urządzeniami. Przejdź do instancji usługi konfiguracji urządzeń w portalu Azure. Otwórz szczegóły rejestracji dla rejestracji indywidualnej, którą utworzyłeś. Zwróć uwagę, że stan rejestracji to przypisany i że identyfikator urządzenia znajduje się na liście.

Użyj następujących poleceń na urządzeniu, aby sprawdzić, czy usługa IoT Edge została zainstalowana i uruchomiona pomyślnie.

Sprawdź stan usługi IoT Edge.

systemctl status iotedge

Sprawdź dzienniki usług.

journalctl -u iotedge --no-pager --no-full

Lista uruchomionych modułów.

iotedge list

Dalsze kroki

Proces rejestracji w usłudze wdrażania urządzeń umożliwia ustawienie identyfikatora urządzenia i właściwości bliźniaczych urządzenia jednocześnie z jego wdrożeniem. Tych wartości można użyć do określania wartości docelowych dla poszczególnych urządzeń lub grup urządzeń przy użyciu automatycznego zarządzania urządzeniami. Dowiedz się, jak wdrażać i monitorować moduły usługi IoT Edge na dużą skalę przy użyciu witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure.