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.zip
witryny 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ł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 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.
- W Azure Portal przejdź do centrum IoT.
- 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 pole wyboru Automatyczne generowanie kluczy jest zaznaczone.
- 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 parametrów 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 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
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 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ń.
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.
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
Zainstaluj pakiety .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:
-
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 iconnectionData
jako pusty ciąg w pliku konfiguracji.-
producent:
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 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
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 Azure Portal i przejdź do centrum IoT, które zostało skonfigurowane 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 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.
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ż.
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 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.
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 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ń.
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 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
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ąć wdrożenie.
Aktualizacja zaimportowana w poprzedniej sekcji jest wyświetlana jako najlepsza dostępna aktualizacja dla tej grupy. Wybierz pozycję 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żeniastan powoduje zmianę pozycji 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ś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.
Przejdź do grupy zasobów w 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 dowiesz się, jak zaktualizować pakiety urządzeń.