Samouczek: usługa Azure Device Update dla usługi IoT Hub przy użyciu agenta symulatora
Usługa Azure Device Update dla usługi IoT Hub obsługuje aktualizacje oparte na obrazach, oparte na pakietach i oparte na skryptach. W tym samouczku przedstawiono kompleksową aktualizację aktualizacji aktualizacji urządzenia opartą na obrazie, która korzysta z agenta symulatora systemu Ubuntu.
Aktualizacje obrazów zapewniają wysoki poziom zaufania do stanu końcowego urządzenia i nie stanowią takich samych wyzwań związanych z zarządzaniem pakietami i zależnościami, jak aktualizacje oparte na pakietach lub skryptach. Łatwiej jest replikować wyniki aktualizacji obrazu między środowiskiem przedprodukcyjnym i produkcyjnym lub łatwo wdrożyć model trybu failover A/B.
W tym samouczku zostały wykonane następujące czynności:
- Przypisz urządzenie IoT do grupy aktualizacji urządzeń przy użyciu tagów.
- Pobierz i zainstaluj aktualizację obrazu.
- Zaimportuj aktualizację obrazu.
- Wdróż aktualizację obrazu.
- Wyświetl historię wdrażania aktualizacji.
Wymagania wstępne
- Maszyna fizyczna lub wirtualna z systemem Ubuntu 18.04 x64
- Konto i wystąpienie usługi Device Update skonfigurowane za pomocą centrum IoT
Rejestrowanie i konfigurowanie urządzenia i 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 witrynie Azure Portal otwórz stronę centrum IoT Hub skojarzona z wystąpieniem usługi Device Update.
- W okienku nawigacji wybierz pozycję Urządzenia do zarządzania urządzeniami>.
- Na stronie Urządzenia 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. Urządzenie zostanie wyświetlone na liście na stronie Urządzenia .
Tworzenie tożsamości modułu
Po zarejestrowaniu urządzenia utwórz tożsamość modułu. Moduły są niezależnymi tożsamościami składników urządzeń IoT, które umożliwiają uzyskanie bardziej szczegółowego poziomu, gdy urządzenie uruchamia wiele procesów.
W tym samouczku utworzysz tożsamość modułu dla agenta usługi Device Update uruchomionego na urządzeniu. Aby uzyskać więcej informacji, zobacz Omówienie bliźniaczych reprezentacji modułów i korzystanie z nich w usłudze IoT Hub.
- Na stronie Urządzenia wybierz zarejestrowane urządzenie.
- Na stronie urządzenia wybierz pozycję Dodaj tożsamość modułu.
- Na stronie Dodawanie tożsamości modułu w obszarze Nazwa tożsamości modułu wprowadź nazwę modułu, na przykład DeviceUpdateAgent.
- Wybierz pozycję Zapisz. Nowa tożsamość modułu zostanie wyświetlona na stronie urządzenia w obszarze Tożsamości modułu.
- Wybierz nazwę modułu, a na stronie Szczegóły tożsamości modułu wybierz ikonę Kopiuj obok pozycji Parametry połączenia (klucz podstawowy). Zapisz ten moduł parametry połączenia do użycia podczas konfigurowania agenta usługi Device Update.
Dodawanie tagu grupy do bliźniaczej reprezentacji modułu
Usługa Device Update automatycznie organizuje 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ń.
Tag można przypisać do dowolnego urządzenia zarządzanego przez usługę Device Update w celu przypisania urządzenia do grupy aktualizacji urządzeń. Tag może znajdować się w bliźniaczej reprezentacji urządzenia lub bliźniaczej reprezentacji modułu, jak w tym samouczku. Każde urządzenie można przypisać tylko do jednej grupy aktualizacji urządzeń.
Na stronie Szczegóły tożsamości modułu wybierz pozycję Bliźniacze reprezentacja tożsamości modułu.
Na stronie Bliźniaczej reprezentacji tożsamości modułu dodaj nowy
DeviceUpdateGroup
tag do kodu JSON na tym samym poziomie comodelId
iversion
, w następujący sposób:"tags": { "DeviceUpdateGroup": "DU-simulator-tutorial" },
Wybierz pozycję Zapisz. Portal ponownie formatuje reprezentację modułu w celu uwzględnienia tagu w strukturze 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 zainstalujesz agenta usługi Device Update na urządzeniu z systemem Ubuntu 18.04 i skonfigurujesz go do uruchamiania jako symulator, pokazując, jak można zastosować aktualizację do urządzenia bez zmiany konfiguracji urządzenia.
Uwaga
Do aprowizowania urządzenia można również użyć usługi azure IoT Identity Service. W tym celu zainstaluj usługę azure IoT Identity Service przed zainstalowaniem agenta usługi Device Update. Następnie skonfiguruj agenta "connectionType": "AIS"
usługi Device Update i pozostaw connectionData
go jako pusty ciąg w pliku konfiguracji.
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 du-config.json .
sudo nano /etc/adu/du-config.json
Zaktualizuj du-config.json przy użyciu następujących przykładowych wartości. Zastąp
<connection string>
symbol zastępczy parametry połączenia skopiowaną z tożsamości modułu. Aby uzyskać więcej informacji na temat parametrów, zobacz Plik konfiguracji aktualizacji urządzenia.manufacturer: "contoso"
model: "video"
agents.name: "aduagent"
agents.connectionData: <connection string>
agents.manufacturer: "contoso"
agents.model: "video"
Edytowany plik du-config.json powinien wyglądać następująco:
{ "schemaVersion": "1.0", "aduShellTrustedUsers": [ "adu", "do" ], "manufacturer": "contoso", "model": "video", "agents": [ { "name": "aduagent", "runas": "adu", "connectionSource": { "connectionType": "string", "connectionData": <connection string> }, "manufacturer": "contoso", "model": "video" } ] }
Naciśnij Ctrl+X, aby zakończyć działanie edytora, a następnie wprowadź y, aby zapisać zmiany.
Aby skonfigurować agenta do uruchamiania jako symulator, uruchom następujące polecenie na urządzeniu IoT. Agent usługi Device Update wywołuje program obsługi symulatora w celu przetwarzania aktualizacji korzystających z rozszerzenia Microsoft SWUpdate.
sudo /usr/bin/AducIotAgent --extension-type updateContentHandler --extension-id 'microsoft/swupdate:1' --register-extension /var/lib/adu/extensions/sources/libmicrosoft_simulator_1.so
Pobieranie plików symulatora
Pobierz i wyodrębnij archiwum Tutorial_Simulator.zip z sekcji GitHub Device Update Release latest release Assets (Najnowsza wersja Assets) na maszynie z systemem Ubuntu 18.04.
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
Skopiuj plik sample-du-simulator-data.json z wyodrębnionego folderu Tutorial_Simulator do folderu tmp.
cp sample-du-simulator-data.json /tmp/du-simulator-data.json
Uwaga
Jeśli folder tmp nie istnieje, utwórz go w następujący sposób:
sudo mkdir/tmp sudo chown root:root/tmp sudo chmod 1777/tmp
Zmień uprawnienia dla pliku /tmp/sample-du-simulator-data.json .
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
Pobierz i wyodrębnij archiwum Tutorial_Simulator.zip z sekcji GitHub Device Update Release latest release Assets (Najnowsza wersja Assets ) na maszynie deweloperskiej, jeśli różni się ona od urządzenia Z systemem Ubuntu 18.04 IoT. W tej sekcji są używane pliki TutorialImportManifest_Sim.importmanifest.json i adu-update-image-raspberrypi3.swu z folderu Tutorial_Simulator .
Plik aktualizacji jest taki sam jak 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 wystąpienia usługi Device Update.
W okienku nawigacji wybierz pozycję Zarządzanie urządzeniami> Aktualizacje.
Na stronie Aktualizacje wybierz pozycję Importuj nową aktualizację.
Na stronie Importowanie aktualizacji wybierz pozycję Wybierz z kontenera magazynu.
Wybierz istniejące konto magazynu lub utwórz nowe konto, wybierając pozycję Konto magazynu.
Wybierz istniejący kontener lub utwórz nowy kontener, wybierając pozycję Kontener. Ten kontener służy do przygotowania plików aktualizacji do importowania.
Uwaga
Aby uniknąć przypadkowego importowania plików z poprzednich aktualizacji, należy użyć nowego kontenera za każdym razem, gdy importujesz aktualizację. Jeśli nie używasz nowego kontenera, pamiętaj, aby usunąć wszystkie pliki z istniejącego kontenera.
Na stronie kontenera wybierz pozycję Przekaż. Przejdź do i wybierz pliki TutorialImportManifest_Sim.importmanifest.json i adu-update-image-raspberrypi3.swu , a następnie wybierz pozycję Przekaż.
Zaznacz pola wyboru według obu plików, a następnie wybierz pozycję Wybierz , aby powrócić do strony Importuj aktualizację .
Na stronie Importowanie aktualizacji przejrzyj pliki do zaimportowania, a następnie wybierz pozycję Importuj aktualizację.
Rozpocznie się proces importowania i możesz wybrać pozycję Wyświetl historię importu, aby wyświetlić historię i stan importu. Na stronie Historia aktualizacji w polu Stan jest wyświetlana wartość Powodzenie po zakończeniu importowania. Możesz wybrać pozycję Odśwież , aby zaktualizować stan.
Zaimportowana aktualizacja jest teraz wyświetlana na stronie Aktualizacje .
Aby uzyskać więcej informacji na temat procesu importowania, zobacz Importowanie aktualizacji do usługi Device Update dla usługi IoT Hub.
Wybierz grupę urządzeń
Możesz użyć tagu grupy zastosowanego do urządzenia, aby wdrożyć aktualizację w grupie urządzeń. Wybierz kartę Grupy i wdrożenia w górnej części strony Aktualizacje , aby wyświetlić listę grup i wdrożeń oraz 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. Aby uzyskać więcej informacji, zobacz Zgodność aktualizacji urządzeń.
W obszarze Nazwa grupy zostanie wyświetlona lista wszystkich grup urządzeń dla urządzeń połączonych z tym centrum IoT i ich dostępnymi aktualizacjami wraz z linkami umożliwiającymi wdrożenie aktualizacji w obszarze Stan. Wszystkie urządzenia, które nie spełniają wymagań klasy urządzeń grupy, są wyświetlane w odpowiedniej nieprawidłowej grupie. Aby uzyskać więcej informacji na temat tagów i grup, zobacz Zarządzanie grupami urządzeń.
W tym samouczku powinna zostać wyświetlona grupa urządzeń zawierająca symulowane urządzenie skonfigurowane w tym samouczku. Wybierz nazwę grupy, aby wyświetlić jej szczegóły.
Wdrażanie aktualizacji
Na stronie Szczegóły grupy powinna zostać wyświetlona jedna nowa aktualizacja dostępna dla tej grupy. Wybierz pozycję Wdróż , aby rozpocząć wdrażanie.
Zaimportowana aktualizacja jest wyświetlana jako najlepsza dostępna aktualizacja dla tej grupy. Wybierz Wdróż.
Zaplanuj natychmiastowe rozpoczęcie wdrożenia, a następnie wybierz pozycję Utwórz.
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 zaktualizowane w celu uwzględnienia zainstalowanej aktualizacji.
Wyświetlanie historii wdrażania 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.
Czyszczenie zasobów
Jeśli przejdziesz do następnego samouczka, zachowaj zasoby usługi Device Update i IoT Hub. Jeśli nie potrzebujesz już zasobów utworzonych na potrzeby tego samouczka, możesz je usunąć.
- W witrynie Azure Portal przejdź do grupy zasobów zawierającej zasoby.
- Jeśli chcesz usunąć wszystkie zasoby w grupie, wybierz pozycję Usuń grupę zasobów.
- Jeśli chcesz usunąć tylko niektóre zasoby, użyj pól wyboru, aby zaznaczyć zasoby, a następnie wybierz pozycję Usuń.