Samouczek: aktualizacja urządzenia dla usługi 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 usługi IoT Hub. Usługa Device Update dla usługi 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 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 Hub.
Mieć urządzenie z systemem Ubuntu 18.04. To urządzenie może być fizyczne lub maszyny wirtualnej.
Pobierz plik zip o nazwie
Tutorial_Simulator.zip
z witryny Release Assets w najnowszej wersji i rozpakuj go.Jeśli urządzenie testowe różni się od komputera programistycznego, pobierz plik zip do obu tych elementów.
Możesz użyć
wget
polecenia , aby pobrać plik zip. Zastąp<release_version>
ciąg najnowszą wersją, na przykład1.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 centrum IoT 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 umożliwia uzyskanie bardziej szczegółowego stopnia szczegółowości w przypadku korzystania z urządzenia IoT z wieloma procesami. Na potrzeby tego samouczka użyjesz tej tożsamości modułu dla agenta usługi Device Update działającego na urządzeniu IoT. Aby uzyskać więcej informacji, zobacz Omówienie bliźniaczych reprezentacji modułów i korzystanie z nich w usłudze IoT Hub.
- W witrynie Azure Portal przejdź do centrum IoT Hub.
- W okienku po lewej stronie wybierz pozycję Urządzenia. Następnie wybierz pozycję Dodaj urządzenie.
- W obszarze Identyfikator urządzenia wprowadź nazwę urządzenia. Upewnij się, że zaznaczono pole wyboru Automatyczne generowanie kluczy .
- Wybierz pozycję Zapisz.
- Teraz nastąpi powrót do strony Urządzenia , a utworzone urządzenie powinno znajdować się na liście. Wybierz to urządzenie.
- Wybierz pozycję Dodaj tożsamość modułu.
- W obszarze Nazwa tożsamości modułu wprowadź nazwę modułu, na przykład DUAgent.
- Wybierz pozycję Zapisz
Kopiowanie parametry połączenia modułu
- 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.
- Wybierz ikonę Kopiuj obok pozycji Parametry połączenia (klucz podstawowy). Zapisz tę parametry połączenia do użycia podczas konfigurowania agenta usługi Device Update. Ten ciąg jest twoim modułem parametry połączenia.
Dodawanie tagu do bliźniaczej reprezentacji modułu
Nadal na stronie szczegółów tożsamości modułu wybierz pozycję Bliźniacze reprezentacje tożsamości modułu
Dodaj nową wartość tagu Device Update na tym samym poziomie co
modelId
iversion
w pliku bliźniaczej reprezentacji, jak pokazano poniżej:"tags": { "ADUGroup": "DU-simulator-tutorial" },
Każde urządzenie zarządzane przez usługę Device Update wymaga tego tagu zarezerwowanego, 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ń.
Wybierz pozycję Zapisz. Portal ponownie formatuje bliźniacza reprezentację modułu w celu uwzględnienia tagu w strukturze json.
Instalowanie i konfigurowanie agenta usługi Device Update
Agent usługi Device Update działa na każdym urządzeniu zarządzanym przez usługę Device Update. Na potrzeby tego samouczka skonfigurujemy go tak, aby był uruchamiany jako symulator, aby zobaczyć, jak można zastosować aktualizację do urządzenia bez faktycznej zmiany konfiguracji urządzenia.
Na urządzeniu IoT dodaj repozytorium pakietów firmy Microsoft, a następnie dodaj klucz podpisywania pakietów 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
Zainstaluj pakiet .deb agenta usługi Device Update.
sudo apt-get update sudo apt-get install deviceupdate-agent
Otwórz plik konfiguracji agenta.
sudo nano /etc/adu/du-config.json
Zaktualizuj następujące wartości w pliku konfiguracji:
- manufacturer:
"Contoso"
— ta wartość służy do klasyfikowania urządzenia IoT pod kątem aktualizacji docelowych. - model:
"Video"
— ta wartość służy do klasyfikowania urządzenia IoT pod kątem aktualizacji docelowych. - nazwa:
"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
Możesz również użyć usługi tożsamości IoT do aprowizowania urządzenia. Aby to zrobić, należy zainstalować usługę tożsamości iot przed zainstalowaniem agenta usługi Device Update. Następnie skonfiguruj agenta usługi Device Update za pomocą polecenia
"connectionType": "AIS"
iconnectionData
jako pusty ciąg w pliku konfiguracji.- manufacturer:
Zapisz i zamknij plik.
CTRL
+X
,Y
iEnter
.Skonfiguruj agenta do uruchamiania jako symulator. Uruchom następujące polecenie na urządzeniu IoT, aby agent aktualizacji urządzenia 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
Rozpakuj
Tutorial_Simulator.zip
plik pobrany w wymaganiach wstępnych i skopiujsample-du-simulator-data.json
plik dotmp
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
Zmień uprawnienia dla nowego pliku.
sudo chown adu:adu /tmp/du-simulator-data.json sudo chmod 664 /tmp/du-simulator-data.json
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.
Na komputerze deweloperskim zaloguj się do witryny Azure Portal i przejdź do centrum IoT Hub skonfigurowanego przy użyciu usługi Device Update.
W okienku nawigacji w obszarze Zarządzanie urządzeniami wybierz pozycję Aktualizacje.
Wybierz pozycję Importuj nową aktualizację.
Wybierz pozycję Wybierz z kontenera magazynu.
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 importowania.
Uwaga
Zalecamy użycie 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.
W kontenerze wybierz pozycję Przekaż i przejdź do plików pobranych w wymaganiach wstępnych. Wybierz TutorialImportManifest_Sim.importmanifest.json i pliki adu-update-image-raspberrypi3.swu, a następnie wybierz pozycję Przekaż.
Zaznacz pole wyboru według każdego pliku, a następnie wybierz przycisk Wybierz , aby powrócić do strony Importuj aktualizację .
Na stronie Importowanie aktualizacji przejrzyj pliki do zaimportowania. Następnie wybierz pozycję Importuj aktualizację , aby rozpocząć proces importowania.
Rozpoczyna się proces importowania, a ekran przechodzi do sekcji Historia importu. W kolumnie Stan jest wyświetlany import jako Uruchomiony , gdy importowanie jest w toku, i Powodzenie po zakończeniu importowania. Użyj przycisku Odśwież, aby zaktualizować stan.
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.
Aby uzyskać więcej informacji na temat procesu importowania, zobacz Importowanie aktualizacji do usługi Device Update dla usługi 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 w grupy 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ń.
Przejdź do karty Grupy i wdrożenia w górnej części strony Aktualizacje .
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.
Powinna zostać wyświetlona grupa urządzeń zawierająca symulowane urządzenie skonfigurowane w tym samouczku wraz ze wszystkimi 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
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.
Wybierz nazwę grupy, aby wyświetlić jej szczegóły.
Na stronie szczegółów grupy powinna zostać wyświetlona jedna nowa aktualizacja. Wybierz pozycję Wdróż , aby rozpocząć wdrażanie.
Aktualizacja zaimportowana w poprzedniej sekcji jest wymieniona jako najlepsza dostępna aktualizacja dla tej grupy. Wybierz Wdróż.
Zaplanuj natychmiastowe rozpoczęcie wdrożenia, a następnie wybierz pozycję Utwórz.
Na stronie szczegółów grupy przejdź do karty Bieżące aktualizacje. W obszarze Szczegóły wdrożenia stan zmieni się na Aktywny.
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
Wróć do strony szczegółów grupy i wybierz kartę Historia wdrożenia.
Wybierz pozycję Wyświetl szczegóły wdrożenia obok utworzonego wdrożenia.
Wybierz pozycję Odśwież , aby wyświetlić najnowsze szczegóły stanu.
Ukończono pomyślną kompleksową aktualizację obrazu przy użyciu aktualizacji urządzenia dla usługi IoT Hub przy użyciu agenta referencyjnego symulatora ubuntu (18.04 x64).
Czyszczenie zasobów
Jeśli przejdziesz do następnego samouczka, zachowaj zasoby usługi Device Update i IoT Hub.
Gdy te zasoby nie będą już potrzebne, możesz je usunąć w witrynie Azure Portal.
Przejdź do grupy zasobów w witrynie Azure Portal.
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 dowiedz się, jak aktualizować pakiety urządzeń.