Udostępnij przez


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

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 kompleksowe instrukcje dotyczące rejestrowania i aprowizacji urządzenia usługi IoT Edge z systemem Linux, w tym instalowania usługi IoT Edge.

Każde urządzenie, które łączy się z centrum IoT, ma identyfikator urządzenia używany do śledzenia komunikacji urządzenie-chmura lub chmura-urządzenie. Urządzenie można skonfigurować przy użyciu informacji o połączeniu, w tym nazwy hosta centrum IoT, identyfikatora urządzenia i informacji używanych przez urządzenie do uwierzytelniania w usłudze 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, a urządzenie przedstawia klucz do usługi IoT Hub podczas uwierzytelniania.

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

  • X.509 samopodpisany: 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 opisano rejestrowanie urządzenia usługi IoT Edge i instalowanie na nim usługi IoT Edge. Te zadania mają różne wymagania wstępne i narzędzia używane do ich wykonania. Przed kontynuowaniem upewnij się, że zostały spełnione wszystkie wymagania wstępne.

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:

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.

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 Twoim centrum IoT w portalu Azure, urządzenia IoT Edge są tworzone i zarządzane oddzielnie od urządzeń IoT, które nie są wyposażone w funkcje brzegowe.

  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. Zanotuj ten identyfikator urządzenia, ponieważ będzie on używany później.
    • Zaznacz pole wyboru Urządzenie IoT Edge.
    • Wybierz Klucz symetryczny jako typ uwierzytelniania.
    • Użyj ustawień domyślnych, aby automatycznie wygenerować klucze uwierzytelniania i połączyć nowe urządzenie z centrum.
  4. Wybierz Zapisz.

Po zarejestrowaniu urządzenia w usłudze IoT Hub pobierz informacje używane do ukończenia instalacji i aprowizacji środowiska uruchomieniowego usługi IoT Edge.

Wyświetlanie zarejestrowanych urządzeń i pobieranie informacji konfiguracyjnych

Urządzenia, które używają uwierzytelniania za pomocą kluczy symetrycznych, potrzebują ciągów połączeń do zakończenia instalacji i konfiguracji środowiska uruchomieniowego usługi IoT Edge.

Urządzenia z technologią edge, które łączą się z węzłem IoT, są wyświetlane na stronie Urządzenia. Listę można filtrować według typu urządzenia IoT Edge .

Zrzut ekranu przedstawiający sposób wyświetlania urządzeń w witrynie Azure Portal w usłudze IoT Hub.

Gdy będziesz gotowy skonfigurować swoje urządzenie, potrzebujesz ciągu połączenia, który łączy urządzenie fizyczne z jego tożsamością w hubie IoT.

Urządzenia uwierzytelnione za pomocą kluczy symetrycznych mają dostępne parametry połączenia do kopiowania w portalu.

  1. Na stronie Urządzenia w portalu wybierz identyfikator urządzenia IoT Edge z listy.
  2. Skopiuj wartość podstawowych parametrów połączenia lub pomocniczych parametrów połączenia.

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

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

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

Teraz, gdy silnik kontenera i środowisko uruchomieniowe IoT Edge są zainstalowane na Twoim urządzeniu, możesz przejść do następnego kroku: skonfigurować urządzenie z jego tożsamością chmury i informacjami uwierzytelniającymi.

Na urządzeniu usługi IoT Edge otwórz plik konfiguracji.

sudo nano /etc/iotedge/config.yaml

Znajdź konfiguracje aprowizacji pliku i usuń komentarz z sekcji ręcznej konfiguracji aprowizacji przy użyciu łańcucha połączenia, jeśli nie jest ona jeszcze bez komentarza.

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

Zaktualizuj wartość device_connection_string, używając ciągu połączenia ze swojego urządzenia IoT Edge. Upewnij się, że wszystkie inne sekcje konfiguracji są zakomentowane. Upewnij się, że linia aprowizacji : nie ma wcześniejszego odstępu i że zagnieżdżone elementy są wcięte przez dwie spacje.

Aby wkleić zawartość schowka do Nano Shift+Right Click, naciśnij Shift+Insert.

Zapisz i zamknij plik.

CTRL + X, Y, Enter

Po wprowadzeniu informacji o aprowizacji w pliku konfiguracji uruchom ponownie demona:

sudo systemctl restart iotedge

Weryfikowanie pomyślnej konfiguracji

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

Wskazówka

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żywaj sudo przed poleceniami.

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

sudo systemctl status iotedge

Jeśli musisz rozwiązać problemy z usługą, pobierz dzienniki usługi.

journalctl -u iotedge

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

sudo iotedge check

Wskazówka

Zawsze używaj sudo, aby uruchomić narzędzie 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ść produkcyjna: katalog magazynu Edge Hub jest zachowywany w systemie plików hosta: błąd

Nie można sprawdzić bieżącego stanu kontenera edgeHub

Ten błąd jest oczekiwany na nowo zaaprowizowanych urządzeniach, ponieważ moduł usługi IoT Edge Hub nie jest uruchomiony. Aby rozwiązać ten problem, w usłudze IoT Hub ustaw moduły dla urządzenia i utwórz wdrożenie. Utworzenie wdrożenia urządzenia powoduje uruchomienie modułów na urządzeniu, w tym modułu IoT Edge Hub.

Wyświetl wszystkie moduły uruchomione na urządzeniu usługi IoT Edge. Po uruchomieniu usługi po raz pierwszy powinien być uruchomiony tylko moduł edgeAgent. Moduł edgeAgent działa domyślnie i pomaga zainstalować i uruchomić dodatkowe moduły wdrażane na urządzeniu.

sudo iotedge list

Podczas tworzenia nowego urządzenia usługi IoT Edge zostanie wyświetlony kod stanu 417 -- The device's deployment configuration is not set w portalu Azure. Ten stan jest normalny i oznacza, że urządzenie jest gotowe do otrzymania wdrożenia modułu.

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.

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

  1. Przejdź do wydań Azure IoT Edge i znajdź wersję wydania, którą chcesz wybrać.

  2. Rozwiń sekcję Zasoby dla tej wersji.

  3. Każda wersja powinna zawierać nowe pliki demona zabezpieczeń usługi IoT Edge i modułu hsmlib. 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 libiothsm-std zgodny z architekturą urządzenia 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ę modułu hsmlib:

      curl -L <libiothsm-std_link> -o libiothsm-std.deb && sudo apt-get install ./libiothsm-std.deb
      
    3. Znajdź plik iotedge zgodny z architekturą urządzenia usługi IoT Edge. Kliknij prawym przyciskiem myszy link do pliku i skopiuj adres linku.

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

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

Teraz, gdy aparat kontenera i środowisko uruchomieniowe usługi IoT Edge są zainstalowane na urządzeniu, możesz przystąpić do następnego kroku, czyli aprovisionować urządzenie za pomocą tożsamości w chmurze.

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 iotedge

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 name>

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

sudo apt-get autoremove --purge moby-engine