Udostępnij za pośrednictwem


Samouczek: aktualizacja urządzenia dla Azure IoT Hub przy użyciu obrazu referencyjnego urządzenia Raspberry Pi 3 B+

Usługa Device Update dla Azure IoT Hub obsługuje aktualizacje oparte na obrazach, oparte na pakietach i oparte na skryptach.

Aktualizacje obrazów zapewniają wyższy poziom zaufania do stanu końcowego urządzenia. Zazwyczaj łatwiej jest replikować wyniki aktualizacji obrazu między środowiskiem przedprodukcyjnym a środowiskiem produkcyjnym, ponieważ nie stanowi to takich samych wyzwań, jak pakiety i ich zależności. Ze względu na ich niepodzielne charakter można również łatwo wdrożyć model trybu failover A/B.

W tym samouczku przedstawiono kroki umożliwiające ukończenie kompleksowej aktualizacji opartej na obrazie przy użyciu usługi Device Update for IoT Hub na tablicy Raspberry Pi 3 B+.

Z tego samouczka dowiesz się, jak wykonywać następujące czynności:

  • Pobierz obraz.
  • Dodaj tag do urządzenia IoT.
  • Zaimportuj aktualizację.
  • Utwórz grupę urządzeń.
  • Wdrażanie aktualizacji obrazu.
  • Monitorowanie wdrożenia aktualizacji.

Uwaga

Aktualizacje obrazów w tym samouczku zostały zweryfikowane na tablicy Raspberry Pi B3.

Wymagania wstępne

Jeśli jeszcze tego nie zrobiono, utwórz konto i wystąpienie usługi Device Update i skonfiguruj centrum IoT Hub.

Pobieranie obrazu

Udostępniamy przykładowe obrazy w zasobach na stronie Wydania usługi GitHub aktualizacji urządzenia. Plik gz jest obrazem podstawowym, na którym można migać na płytę Raspberry Pi 3 B+. Plik swUpdate to aktualizacja, którą należy zaimportować za pomocą usługi Device Update dla IoT Hub.

Migaj kartę SD z obrazem

Użyj ulubionego narzędzia flashowania systemu operacyjnego, aby zainstalować obraz podstawowy usługi Device Update (adu-base-image) na karcie SD, która będzie używana na urządzeniu Raspberry Pi 3 B+.

Używanie narzędzia bmaptool do flash karty SD

  1. bmaptool Zainstaluj narzędzie, jeśli jeszcze tego nie zrobiono.

    sudo apt-get install bmap-tools
    
  2. Znajdź ścieżkę dla karty SD w pliku /dev. Ścieżka powinna wyglądać następująco: /dev/sd* lub /dev/mmcblk*. Możesz użyć dmesg narzędzia, aby pomóc zlokalizować poprawną ścieżkę.

  3. Odinstaluj wszystkie zainstalowane partycje przed flashowaniem.

    sudo umount /dev/<device>
    
  4. Upewnij się, że masz uprawnienia do zapisu na urządzeniu.

    sudo chmod a+rw /dev/<device>
    
  5. Opcjonalnie: aby przyspieszyć miganie, pobierz plik mapy bimap i plik obrazu i umieść je w tym samym katalogu.

  6. Flash kartę SD.

    sudo bmaptool copy <path to image> /dev/<device>
    

Usługa Device Update dla oprogramowania Azure IoT Hub podlega następującym postanowieniom licencyjnym:

Przeczytaj postanowienia licencyjne przed użyciem agenta. Twoja instalacja i użycie stanowią akceptację tych warunków. Jeśli nie zgadzasz się z postanowieniami licencyjnymi, nie używaj aktualizacji urządzenia dla agenta IoT Hub.

Tworzenie urządzenia lub modułu w IoT Hub i pobieranie parametrów połączenia

Teraz dodaj urządzenie do IoT Hub. Z poziomu IoT Hub dla urządzenia są generowane parametry połączenia.

  1. W Azure Portal uruchom IoT Hub.

  2. Utwórz nowe urządzenie.

  3. W okienku po lewej stronie wybierz pozycję Urządzenia. Następnie wybierz pozycję Nowy.

  4. W obszarze Identyfikator urządzenia wprowadź nazwę urządzenia. Upewnij się, że zaznaczono pole wyboru Automatyczne generowanie kluczy .

  5. Wybierz pozycję Zapisz. Na stronie Urządzenia utworzone urządzenie powinno znajdować się na liście.

  6. Pobierz parametry połączenia urządzenia przy użyciu jednej z dwóch opcji:

    • Opcja 1. Użyj agenta usługi Device Update z tożsamością modułu: na tej samej stronie Urządzenia wybierz pozycję Dodaj tożsamość modułu u góry. Utwórz nowy moduł Device Update o nazwie IoTHubDeviceUpdate. Wybierz inne opcje, które mają zastosowanie do przypadku użycia, a następnie wybierz pozycję Zapisz. Wybierz nowo utworzony moduł. W widoku modułu wybierz ikonę Kopiuj obok pozycji Podstawowe parametry połączenia.
    • Opcja 2. Użyj agenta usługi Device Update z tożsamością urządzenia: w widoku urządzenia wybierz ikonę Kopiuj obok pozycji Podstawowe parametry połączenia.
  7. Wklej skopiowane znaki do późniejszego użycia w następujących krokach:

    Te skopiowane parametry to parametry połączenia urządzenia.

Przygotowywanie konfiguracji urządzeń na potrzeby aktualizacji urządzeń dla IoT Hub

Na urządzeniu muszą znajdować się dwa pliki konfiguracji, aby usługa Device Update dla IoT Hub poprawnie skonfigurowała. Pierwszym plikiem du-config.json jest plik, który musi istnieć w lokalizacji /adu/du-config.json. Drugi plik to du-diagnostics-config.json plik, który musi istnieć w lokalizacji /adu/du-diagnostics-config.json.

Poniżej przedstawiono dwa przykłady plików du-config.json i du-diagnostics-config.json :

Przykład du-config.json

   {
      "schemaVersion": "1.0",
      "aduShellTrustedUsers": [
         "adu",
         "do"
      ],
      "manufacturer": "fabrikam",
      "model": "vacuum",
      "agents": [
         {
         "name": "main",
         "runas": "adu",
         "connectionSource": {
            "connectionType": "string",
            "connectionData": "HostName=example-connection-string.azure-devices.net;DeviceId=example-device;SharedAccessKey=M5oK/rOP12aB5678YMWv5vFWHFGJFwE8YU6u0uTnrmU="
         },
         "manufacturer": "fabrikam",
         "model": "vacuum"
         }
      ]
   }  

Przykład du-diagnostics-config.json

   {
      "logComponents":[
         {
               "componentName":"adu",
               "logPath":"/adu/logs/"
         },
         {
               "componentName":"do",
               "logPath":"/var/log/deliveryoptimization-agent/"
         }
      ],
      "maxKilobytesToUploadPerLogPath":50
   }

Konfigurowanie agenta aktualizacji urządzeń na urządzeniu Raspberry Pi

  1. Upewnij się, że urządzenie Raspberry Pi 3 jest połączone z siecią.

  2. Postępuj zgodnie z poniższymi instrukcjami, aby dodać szczegóły konfiguracji:

    1. Najpierw SSH na maszynie przy użyciu następującego polecenia w oknie programu PowerShell:

         ssh raspberrypi3 -l root
      
    2. Utwórz lub otwórz du-config.json plik do edycji przy użyciu:

         nano /adu/du-config.json
      
    3. Po uruchomieniu polecenia powinien zostać wyświetlony otwarty edytor z plikiem. Jeśli plik nigdy nie został utworzony, będzie on pusty. Teraz skopiuj poprzedni przykładową zawartość du-config.json i zastąp konfiguracje wymagane dla urządzenia. Następnie zastąp przykładowe parametry połączenia wartością jedną dla urządzenia utworzonego w poprzednich krokach.

    4. Po zakończeniu wprowadzania zmian wybierz klawisze Ctrl+X , aby zakończyć działanie edytora. Następnie wprowadź wartość y , aby zapisać zmiany.

    5. Teraz musisz utworzyć du-diagnostics-config.json plik przy użyciu podobnych poleceń. Zacznij od utworzenia du-diagnostics-config.json lub otwarcia pliku do edycji przy użyciu:

         nano /adu/du-diagnostics-config.json
      
    6. Skopiuj poprzedni przykład du-diagnostics-config.json zawartości i zastąp wszystkie konfiguracje, które różnią się od kompilacji domyślnej. Przykładowy plik du-diagnostics-config.json reprezentuje domyślne lokalizacje dziennika aktualizacji urządzenia dla IoT Hub. Należy je zmienić tylko wtedy, gdy implementacja się różni.

    7. Po zakończeniu wprowadzania zmian wybierz klawisze Ctrl+X , aby zakończyć działanie edytora. Następnie wprowadź wartość y , aby zapisać zmiany.

    8. Użyj następującego polecenia, aby wyświetlić pliki znajdujące się w /adu/ katalogu. Powinny zostać wyświetlone oba pliki konfiguracji.du-diagnostics-config.json do edycji przy użyciu:

         ls -la /adu/
      
  3. Uruchom ponownie demona systemu aktualizacji urządzeń, aby upewnić się, że konfiguracje zostały zastosowane. Użyj następującego polecenia w terminalu zalogowanym do polecenia raspberrypi:

       systemctl start adu-agent
    
  4. Sprawdź, czy agent jest na żywo, używając następującego polecenia:

       systemctl status adu-agent
    

    Stan powinien zostać wyświetlony jako żywy i zielony.

Łączenie urządzenia w usłudze Device Update dla IoT Hub

  1. W okienku po lewej stronie wybierz pozycję Urządzenia.

  2. Wybierz link z nazwą urządzenia.

  3. W górnej części strony wybierz pozycję Bliźniacze reprezentacja urządzenia , jeśli łączysz się bezpośrednio z usługą Device Update przy użyciu tożsamości urządzenia IoT. W przeciwnym razie wybierz utworzony moduł i wybierz jego bliźniacze reprezentację modułu.

  4. W sekcji zgłoszonej właściwości bliźniaczej reprezentacji urządzenia poszukaj wersji jądra systemu Linux. W przypadku nowego urządzenia, które nie otrzymało aktualizacji z usługi Device Update, wartość DeviceManagement:DeviceInformation:1.swVersion reprezentuje wersję oprogramowania układowego uruchomioną na urządzeniu. Po zastosowaniu aktualizacji do urządzenia usługa Device Update używa wartości właściwości AzureDeviceUpdateCore:ClientMetadata:4.installedUpdateId , aby reprezentować wersję oprogramowania układowego uruchomioną na urządzeniu.

  5. Pliki obrazów podstawowych i aktualizacji mają numer wersji w nazwie pliku.

    adu-<image type>-image-<machine>-<version number>.<extension>
    

Użyj tego numeru wersji w późniejszej sekcji "Zaimportuj aktualizację".

Dodawanie tagu do urządzenia

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

  2. W okienku po lewej stronie w obszarze Urządzenia znajdź urządzenie IoT i przejdź do bliźniaczej reprezentacji urządzenia lub bliźniaczej reprezentacji modułu.

  3. W bliźniaczej reprezentacji modułu agenta usługi Device Update usuń wszystkie istniejące wartości tagów usługi Device Update, ustawiając je na wartość null. Jeśli używasz tożsamości urządzenia z agentem usługi Device Update, wprowadź te zmiany w bliźniaczej reprezentacji urządzenia.

  4. Dodaj nową wartość tagu Device Update, jak pokazano poniżej:

        "tags": {
                "ADUGroup": "<CustomTagValue>"
                }
    

Importowanie aktualizacji

  1. Pobierz przykładowy manifest samouczka (Samouczek Importowanie Manifest_Pi.json) i przykładową aktualizację (adu-update-image-raspberrypi3-0.6.5073.1.swu) z obszaru Zasoby wydania dla najnowszego agenta.

  2. Zaloguj się do Azure Portal i przejdź do centrum IoT Hub za pomocą usługi Device Update. W okienku po lewej stronie w obszarze Automatyczne Zarządzanie urządzeniami wybierz pozycję Aktualizacje.

  3. Wybierz kartę Aktualizacje.

  4. Wybierz pozycję + Importuj nową aktualizację.

  5. Wybierz pozycję + Wybierz z kontenera magazynu. Wybierz istniejące konto lub utwórz nowe konto przy użyciu pozycji + Konto magazynu. Następnie wybierz istniejący kontener lub utwórz nowy kontener przy użyciu polecenia + Kontener. Ten kontener będzie używany do przygotowania plików aktualizacji do zaimportowania.

    Uwaga

    Zalecamy używanie nowego kontenera za każdym razem, gdy importujesz aktualizację, aby uniknąć przypadkowego importowania plików z poprzednich aktualizacji. Jeśli nie używasz nowego kontenera, przed zakończeniem tego kroku usuń wszystkie pliki z istniejącego kontenera.

    Zrzut ekranu przedstawiający konta magazynu i kontenery.

  6. W kontenerze wybierz pozycję Przekaż i przejdź do plików pobranych w kroku 1. Po wybraniu wszystkich plików aktualizacji wybierz pozycję Przekaż. Następnie wybierz przycisk Wybierz , aby powrócić do strony Importuj aktualizację .

    Zrzut ekranu przedstawiający wybieranie przekazanych plików.

    Ten zrzut ekranu przedstawia krok importowania. Nazwy plików mogą nie być zgodne z nazwami używanymi w przykładzie.

  7. Na stronie Importowanie aktualizacji przejrzyj pliki do zaimportowania. Następnie wybierz pozycję Importuj aktualizację , aby rozpocząć proces importowania.

    Zrzut ekranu przedstawiający importowanie aktualizacji.

  8. Rozpoczyna się proces importowania, a ekran przechodzi do sekcji Historia importu . Gdy kolumna Stan wskazuje, że importowanie zakończyło się pomyślnie, wybierz nagłówek Dostępne aktualizacje . Zaimportowana aktualizacja powinna być teraz widoczna na liście.

    Zrzut ekranu przedstawiający stan zadania.

Dowiedz się więcej na temat importowania aktualizacji.

Tworzenie grupy aktualizacji

  1. Przejdź do karty Grupy i wdrożenia w górnej części strony.

    Zrzut ekranu przedstawiający niezgrupowane urządzenia.

  2. Wybierz pozycję Dodaj grupę , aby utworzyć nową grupę.

    Zrzut ekranu przedstawiający dodawanie grupy urządzeń.

  3. Wybierz z listy tag IoT Hub i klasę urządzenia. Następnie wybierz pozycję Utwórz grupę.

    Zrzut ekranu przedstawiający wybór tagu.

  4. Po utworzeniu grupy zostanie zaktualizowany wykres zgodności aktualizacji i lista grup. Wykres zgodności aktualizacji przedstawia liczbę urządzeń w różnych stanach zgodności: w przypadku najnowszej aktualizacji, dostępne nowe aktualizacje i Aktualizacje w toku. Dowiedz się więcej o zgodności aktualizacji.

    Zrzut ekranu przedstawiający widok zgodności aktualizacji.

  5. Nowo utworzona grupa powinna być widoczna i wszystkie dostępne aktualizacje dla urządzeń w nowej grupie. Jeśli istnieją urządzenia, które nie spełniają wymagań klasy urządzeń grupy, są one wyświetlane w odpowiedniej nieprawidłowej grupie. Aby wdrożyć najlepszą dostępną aktualizację dla nowej grupy zdefiniowanej przez użytkownika z tego widoku, wybierz pozycję Wdróż obok grupy.

Dowiedz się więcej o dodawaniu tagów i tworzeniu grup aktualizacji.

Wdrażanie aktualizacji

  1. Po utworzeniu grupy powinna zostać wyświetlona nowa aktualizacja dostępna dla grupy urządzeń. Link do aktualizacji powinien znajdować się w obszarze Najlepsza aktualizacja. Może być konieczne odświeżenie raz. Dowiedz się więcej o zgodności aktualizacji.

  2. Wybierz grupę docelową, wybierając nazwę grupy. Zostaną przekierowane do szczegółów grupy w obszarze Podstawowe informacje o grupie.

    Zrzut ekranu przedstawiający szczegóły grupy.

  3. Aby rozpocząć wdrażanie, przejdź do karty Bieżące wdrożenie . Wybierz link wdrażania obok żądanej aktualizacji z sekcji Dostępne aktualizacje . Najlepsza dostępna aktualizacja dla danej grupy jest oznaczona wyróżnieniem Najlepsze .

    Zrzut ekranu przedstawiający wybieranie aktualizacji.

  4. Zaplanuj rozpoczęcie wdrożenia natychmiast lub w przyszłości. Następnie wybierz pozycję Utwórz.

    Zrzut ekranu przedstawiający przycisk Utwórz.

  5. W obszarze Szczegóły wdrożeniastan zmieni się na Aktywny. Wdrożona aktualizacja jest oznaczona elementem (wdrażanie).

    Zrzut ekranu przedstawiający aktywne wdrożenie.

  6. Wyświetl wykres zgodności, aby zobaczyć, że aktualizacja jest teraz w toku.

  7. Po pomyślnym zaktualizowaniu urządzenia zobaczysz, że wykres zgodności i szczegóły wdrożenia zostały zaktualizowane, aby odzwierciedlić to samo.

    Zrzut ekranu przedstawiający powodzenie aktualizacji.

Monitorowanie wdrożenia aktualizacji

  1. Wybierz kartę Historia wdrożenia w górnej części strony.

    Zrzut ekranu przedstawiający historię wdrażania.

  2. Wybierz pozycję Szczegóły obok utworzonego wdrożenia.

    Zrzut ekranu przedstawiający szczegóły wdrożenia.

  3. Wybierz pozycję Odśwież , aby wyświetlić najnowsze szczegóły stanu.

Ukończono pomyślną aktualizację kompleksowego obrazu przy użyciu usługi Device Update dla IoT Hub na urządzeniu Raspberry Pi 3 B+.

Czyszczenie zasobów

Gdy konto usługi Device Update, wystąpienie, centrum IoT i urządzenie IoT nie będą już potrzebne, wyczyść je.

Następne kroki