Samouczek: aktualizacja urządzenia dla Azure IoT Hub przy użyciu agenta referencyjnego symulatora ubuntu (18.04 x64)

W tym samouczku przedstawiono kompleksową aktualizację opartą na obrazach przy użyciu usługi Device Update dla IoT Hub. 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. Zwykle łatwiej jest replikować wyniki aktualizacji obrazu między środowiskiem przedprodukcyjnym a środowiskiem produkcyjnym, ponieważ nie stanowi to takich samych wyzwań jak zarządzanie pakietami i ich zależnościami. Ze względu na ich niepodzielne charakter można również łatwo przyjąć model trybu failover A/B.

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

  • Przypisz urządzenie IoT do grupy aktualizacji urządzeń przy użyciu tagów.
  • Pobierz i zainstaluj obraz.
  • Zaimportuj aktualizację.
  • Wdrażanie aktualizacji obrazu.
  • Monitorowanie wdrożenia aktualizacji.

Wymagania wstępne

  • Utwórz konto usługi Device Update i wystąpienie skonfigurowane za pomocą centrum IoT.

  • Urządzenie z systemem Ubuntu 18.04. To urządzenie może być fizyczne lub maszyny wirtualnej.

  • Pobierz plik zip o nazwie z Tutorial_Simulator.zipwitryny Release Assets w najnowszej wersji i rozpakuj go.

    Jeśli urządzenie testowe różni się od maszyny deweloperów, pobierz plik zip na oba te elementy.

    Możesz użyć wget polecenia , aby pobrać plik zip. Zastąp <release_version> ciąg najnowszą wersją, na przykład 1.0.0.

    wget https://github.com/Azure/iot-hub-device-update/releases/download/<release_version>/Tutorial_Simulator.zip
    

Rejestrowanie urządzenia i konfigurowanie tożsamości modułu

Dodaj urządzenie do rejestru urządzeń w centrum IoT Hub. Każde urządzenie łączące się z usługą IoT Hub musi być zarejestrowane.

W tej sekcji utworzymy również tożsamość modułu. Moduły są niezależnymi tożsamościami składników, które istnieją na urządzeniu IoT, co zapewnia bardziej szczegółowy stopień szczegółowości w przypadku korzystania z urządzenia IoT z wieloma procesami. W tym samouczku użyjesz tożsamości tego modułu dla agenta usługi Device Update działającego na urządzeniu IoT. Aby uzyskać więcej informacji, zobacz Opis bliźniaczych reprezentacji modułów i korzystanie z nich w IoT Hub.

  1. W Azure Portal przejdź do centrum IoT.
  2. W okienku po lewej stronie wybierz pozycję Urządzenia. Następnie wybierz pozycję Dodaj urządzenie.
  3. W obszarze Identyfikator urządzenia wprowadź nazwę urządzenia. Upewnij się, że pole wyboru Automatyczne generowanie kluczy jest zaznaczone.
  4. Wybierz pozycję Zapisz.
  5. Teraz nastąpi powrót do strony Urządzenia , a utworzone urządzenie powinno znajdować się na liście. Wybierz to urządzenie.
  6. Wybierz pozycję Dodaj tożsamość modułu.
  7. W obszarze Nazwa tożsamości modułu wprowadź nazwę modułu, na przykład DUAgent.
  8. Wybierz pozycję Zapisz

Kopiowanie parametrów połączenia modułu

  1. W widoku urządzenia powinien zostać wyświetlony nowy moduł w nagłówku Tożsamości modułów . Wybierz nazwę modułu, aby otworzyć jego szczegóły.
  2. Wybierz ikonę Kopiuj obok pozycji Parametry połączenia (klucz podstawowy). Zapisz te parametry połączenia do użycia podczas konfigurowania agenta usługi Device Update. Te parametry są parametrami połączenia modułu.

Dodawanie tagu do bliźniaczej reprezentacji modułu

  1. Nadal na stronie szczegółów tożsamości modułu wybierz pozycję Bliźniacze reprezentacje tożsamości modułu

  2. Dodaj nową wartość tagu Device Update na tym samym poziomie co modelId i version w pliku bliźniaczej reprezentacji, jak pokazano poniżej:

    "tags": {
        "ADUGroup": "DU-simulator-tutorial"
    },
    

    Zrzut ekranu przedstawiający tag ADUGroup w bliźniaczej reprezentacji modułu.

    Każde urządzenie zarządzane przez usługę Device Update wymaga tego zarezerwowanego tagu, który przypisuje urządzenie do grupy aktualizacji urządzeń. Może on znajdować się w bliźniaczej reprezentacji urządzenia lub bliźniaczej reprezentacji modułu, jak pokazano tutaj. Każde urządzenie można przypisać tylko do jednej grupy aktualizacji urządzeń.

  3. Wybierz pozycję Zapisz. Portal ponownie formatuje bliźniaczą reprezentację modułu, aby dołączyć tag do struktury json.

Instalowanie i konfigurowanie agenta usługi Device Update

Agent usługi Device Update jest uruchamiany na każdym urządzeniu zarządzanym przez usługę Device Update. W tym samouczku skonfigurujemy go tak, aby był uruchamiany jako symulator, aby zobaczyć, jak można zastosować aktualizację do urządzenia bez faktycznej zmiany konfiguracji urządzenia.

  1. Na urządzeniu IoT dodaj repozytorium pakietów firmy Microsoft, a następnie dodaj klucz podpisywania pakietu firmy Microsoft do listy zaufanych kluczy.

    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   
    
  2. Zainstaluj pakiety .deb agenta usługi Device Update.

    sudo apt-get update
    sudo apt-get install deviceupdate-agent
    
  3. Otwórz plik konfiguracji agenta.

    sudo nano /etc/adu/du-config.json
    
  4. Zaktualizuj następujące wartości w pliku konfiguracji:

    • producent: "Contoso" — ta wartość służy do klasyfikowania urządzenia IoT do określania docelowych aktualizacji.
    • model: "Video" — ta wartość służy do klasyfikowania urządzenia IoT pod kątem aktualizacji docelowych.
    • name: "aduagent"
    • agents.connectionData: podaj parametry połączenia skopiowane z tożsamości modułu.
    • agents.manufacturer: "Contoso"
    • agents.model: "Video"

    Aby uzyskać więcej informacji na temat parametrów w tym kroku, zobacz Plik konfiguracji usługi Device Update.

    Uwaga

    Do aprowizacji urządzenia można również użyć usługi tożsamości IoT. W tym celu należy zainstalować usługę iot indentity przed zainstalowaniem agenta usługi Device Update. Następnie skonfiguruj agenta usługi Device Update za pomocą "connectionType": "AIS" polecenia i connectionData jako pusty ciąg w pliku konfiguracji.

  5. Zapisz i zamknij plik. CTRL+X, Yi Enter.

  6. Skonfiguruj agenta do uruchamiania jako symulator. Uruchom następujące polecenie na urządzeniu IoT, aby agent usługi Device Update wywołuje program obsługi symulatora w celu przetworzenia aktualizacji pakietu za pomocą narzędzia SWUpdate (microsoft/swupdate:1).

      sudo /usr/bin/AducIotAgent --extension-type updateContentHandler --extension-id 'microsoft/swupdate:1' --register-extension /var/lib/adu/extensions/sources/libmicrosoft_simulator_1.so
    
  7. Rozpakuj Tutorial_Simulator.zip plik pobrany w wymaganiach wstępnych i skopiuj sample-du-simulator-data.json plik do tmp folderu.

    cp sample-du-simulator-data.json /tmp/du-simulator-data.json
    

    Jeśli /tmp nie istnieje, uruchom polecenie:

    sudo mkdir/tmp
    sudo chown root:root/tmp
    sudo chmod 1777/tmp
    
  8. Zmień uprawnienia dla nowego pliku.

    sudo chown adu:adu /tmp/du-simulator-data.json
    sudo chmod 664 /tmp/du-simulator-data.json
    
  9. Uruchom ponownie agenta usługi Device Update, aby zastosować zmiany.

     sudo systemctl restart deviceupdate-agent
    

Importowanie aktualizacji

W tej sekcji użyjesz plików TutorialImportManifest_Sim.importmanifest.json i adu-update-image-raspberrypi3.swu plików pobranych Tutorial_Simulator.zip w wymaganiach wstępnych. Plik aktualizacji jest ponownie używany w samouczku urządzenia Raspberry Pi. Ponieważ aktualizacja w tym samouczku jest symulowana, określona zawartość pliku nie ma znaczenia.

  1. Na komputerze deweloperskim zaloguj się do Azure Portal i przejdź do centrum IoT, które zostało skonfigurowane przy użyciu usługi Device Update.

  2. W okienku nawigacji w obszarze Zarządzanie urządzeniami wybierz pozycję Aktualizacje.

  3. Wybierz pozycję Importuj nową aktualizację.

  4. Wybierz pozycję Wybierz z kontenera magazynu.

  5. Wybierz istniejące konto magazynu lub utwórz nowe konto, wybierając pozycję + Konto magazynu. Następnie wybierz istniejący kontener lub utwórz nowy kontener, wybierając pozycję + 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 wymaganiach wstępnych. Wybierz plik TutorialImportManifest_Sim.importmanifest.json i adu-update-image-raspberrypi3.swu , a następnie wybierz pozycję Przekaż.

  7. Zaznacz pole wyboru według każdego pliku, a następnie wybierz przycisk Wybierz , aby powrócić do strony Importuj aktualizację .

    Zrzut ekranu przedstawiający wybieranie przekazanych plików w kontenerze.

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

    Zrzut ekranu przedstawiający przekazane pliki, które zostaną zaimportowane jako aktualizacja.

  9. Rozpoczyna się proces importowania, a ekran przełącza się na sekcję Historia importu . Kolumna Stan pokazuje importowanie jako Uruchomione , gdy importowanie jest w toku, i Powodzenie po zakończeniu importowania. Użyj przycisku Odśwież , aby zaktualizować stan.

  10. 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 nową aktualizację wymienioną jako dostępna aktualizacja.

Aby uzyskać więcej informacji na temat procesu importowania, zobacz Import an update to Device Update for IoT Hub (Importowanie aktualizacji do usługi Device Update for IoT Hub).

Wyświetlanie grup urządzeń

Usługa Device Update używa grup do organizowania urządzeń. Usługa Device Update automatycznie sortuje urządzenia do grup na podstawie przypisanych tagów i właściwości zgodności. Każde urządzenie należy tylko do jednej grupy, ale grupy mogą mieć wiele podgrup do sortowania różnych klas urządzeń.

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

  2. Wyświetl listę grup i wykres zgodności aktualizacji. 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.

    Powinna zostać wyświetlona grupa urządzeń zawierająca symulowane urządzenie skonfigurowane w tym samouczku wraz z wszelkimi dostępnymi aktualizacjami dla urządzeń w nowej grupie. Jeśli istnieją urządzenia, które nie spełniają wymagań klasy urządzeń grupy, zostaną one wyświetlone w odpowiedniej nieprawidłowej grupie.

Aby uzyskać więcej informacji na temat tagów i grup, zobacz Zarządzanie grupami urządzeń.

Wdrażanie aktualizacji

  1. Na karcie Grupy i wdrożenia powinna zostać wyświetlona nowa aktualizacja dostępna dla grupy urządzeń. Link do aktualizacji powinien znajdować się w obszarze Stan. Może być konieczne odświeżenie strony.

  2. Wybierz nazwę grupy, aby wyświetlić jej szczegóły.

  3. Na stronie szczegółów grupy powinna zostać wyświetlona jedna nowa aktualizacja. Wybierz pozycję Wdróż, aby rozpocząć wdrożenie.

    Zrzut ekranu przedstawiający uruchamianie wdrożenia aktualizacji grupy.

  4. Aktualizacja zaimportowana w poprzedniej sekcji jest wyświetlana jako najlepsza dostępna aktualizacja dla tej grupy. Wybierz pozycję Wdróż.

  5. Zaplanuj natychmiastowe rozpoczęcie wdrożenia, a następnie wybierz pozycję Utwórz.

  6. Na stronie szczegółów grupy przejdź do karty Bieżące aktualizacje . W obszarze Szczegóły wdrożeniastan powoduje zmianę pozycji Aktywny.

  7. Po pomyślnym zaktualizowaniu urządzenia wróć do strony Aktualizacje. Powinien zostać wyświetlony wykres zgodności i szczegóły wdrożenia, aby odzwierciedlić to samo.

Monitorowanie wdrożenia aktualizacji

  1. Wróć do strony szczegółów grupy i wybierz kartę Historia wdrożenia .

  2. Wybierz pozycję Wyświetl szczegóły wdrożenia 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ślnie kompleksową aktualizację obrazu przy użyciu aktualizacji urządzenia dla IoT Hub przy użyciu agenta referencyjnego symulatora Ubuntu (18.04 x64).

Czyszczenie zasobów

Jeśli przejdziesz do następnego samouczka, zachowaj swoją aktualizację urządzenia i IoT Hub zasoby.

Gdy te zasoby nie będą już potrzebne, możesz usunąć je w Azure Portal.

  1. Przejdź do grupy zasobów w Azure Portal.

  2. Wybierz zasoby do usunięcia.

    • Jeśli chcesz usunąć wszystkie zasoby w grupie, wybierz pozycję Usuń grupę zasobów.
    • Jeśli chcesz usunąć tylko wybrane zasoby, zaznacz pola wyboru, aby wybrać zasoby, a następnie wybierz pozycję Usuń.

Następne kroki

W tym samouczku przedstawiono sposób importowania i wdrażania aktualizacji obrazu. Następnie dowiesz się, jak zaktualizować pakiety urządzeń.