Udostępnij za pośrednictwem


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

Dotyczy: Ikona tak 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 Aktualizowanie usługi 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 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 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 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 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 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. Zanotuj 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 i połączyć nowe urządzenie z centrum.
  4. Wybierz pozycję 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 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.

Urządzenia z obsługą krawędzi, które łączą się z centrum IoT Hub, są wyświetlane na stronie Urządzenia . Listę można filtrować według typu Urządzenie usługi Iot Edge.

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

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.

  1. Na stronie Urządzenia w portalu wybierz z listy identyfikator urządzenia usługi IoT Edge.
  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.

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

Po pomyślnym zainstalowaniu aparatu Moby skonfiguruj go do używania local sterownika rejestrowania jako mechanizmu rejestrowania. 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 local sterownik rejestrowania, jak pokazano w poniższym przykładzie.

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

    sudo systemctl restart docker
    

    Napiwek

    Jeśli podczas instalowania aparatu kontenera Moby wystąpią błędy, sprawdź zgodność jądra systemu Linux pod kątem zgodności z narzędziem Moby. Niektórzy producenci urządzeń osadzonych wysyłają obrazy urządzeń, które zawierają niestandardowe jądra systemu Linux bez funkcji wymaganych do zapewnienia zgodności aparatu kontenera. 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 usługę 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 długoterminowa gałąź pomocy technicznej 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.

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 następnego kroku, który polega na skonfigurowaniu urządzenia przy użyciu tożsamości chmury i informacji uwierzytelniania.

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

sudo nano /etc/iotedge/config.yaml

Znajdź konfiguracje aprowizacji pliku i usuń komentarz konfiguracji ręcznej aprowizacji przy użyciu sekcji parametry połączenia, jeśli nie jest jeszcze niezakomentowany.

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

Zaktualizuj wartość device_connection_string przy użyciu parametry połączenia z urządzenia usługi IoT Edge. Upewnij się, że wszystkie inne sekcje aprowizacji są komentowane. Upewnij się, że aprowizacja: wiersz nie ma wcześniejszego odstępu i że zagnieżdżone elementy są wcięte przez dwie spacje.

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

Zapisz i zamknij plik.

CTRL + X, , YEnter

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.

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.

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

sudo systemctl status iotedge

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

journalctl -u iotedge

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

sudo iotedge check

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łą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 usługi IoT Edge Hub.

Wyświetl wszystkie moduły uruchomione na urządzeniu usługi IoT Edge. 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.

sudo iotedge list

Podczas tworzenia nowego urządzenia usługi IoT Edge zostanie wyświetlony kod 417 -- The device's deployment configuration is not set stanu w witrynie Azure Portal. 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 kierować pliki składników bezpośrednio z repozytorium GitHub usługi IoT Edge.

  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 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 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ę 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 aprowizować urządzenie przy użyciu 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