Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 pakiety i ich zależności. Ze względu na ich atomowy charakter, można również łatwo przyjąć model przełączania A/B.
Ten samouczek przeprowadzi Cię przez kroki umożliwiające ukończenie kompleksowej aktualizacji opartej na obrazach przy użyciu usługi Device Update for IoT Hub na tablicy Urządzenia Raspberry Pi 3 B+.
Z tego samouczka dowiesz się, jak wykonywać następujące działania:
- 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 przetestowane na płytce Raspberry Pi B3.
Wymagania wstępne
Jeśli jeszcze tego nie zrobiłeś, utwórz konto Device Update i wystąpienie oraz skonfiguruj IoT Hub.
Pobieranie obrazu
Udostępniamy przykładowe obrazy w Assets na stronie wydań GitHub Device Update. Plik .gz jest obrazem podstawowym, który można wgrać na płytkę Raspberry Pi 3 B+. Plik swUpdate to aktualizacja zaimportowana za pośrednictwem usługi Device Update dla usługi IoT Hub.
Nagraj obraz na kartę SD
Użyj ulubionego narzędzia do flashowania systemu operacyjnego, aby zainstalować bazowy obraz aktualizacji urządzenia (adu-base-image) na karcie SD, która będzie używana w urządzeniu Raspberry Pi 3 B+.
Użyj bmaptool do zapisania obrazu na karcie SD.
Zainstaluj narzędzie
bmaptool, jeśli jeszcze tego nie zrobiono.sudo apt-get install bmap-toolsZnajdź ścieżkę dla karty SD w
/dev. Ścieżka powinna wyglądać podobnie do/dev/sd*lub/dev/mmcblk*. Możesz użyćdmesgnarzędzia , aby pomóc zlokalizować poprawną ścieżkę.Odmontuj wszystkie zamontowane partycje przed flashowaniem.
sudo umount /dev/<device>Upewnij się, że masz uprawnienia do zapisu na urządzeniu.
sudo chmod a+rw /dev/<device>Opcjonalnie: Aby przyspieszyć proces, pobierz plik bimap oraz plik obrazu i umieść je w tym samym katalogu.
Wgraj obraz na kartę SD.
sudo bmaptool copy <path to image> /dev/<device>
Aktualizacja urządzenia dla oprogramowania usługi Azure IoT Hub podlega następującym postanowieniom licencyjnym:
Przeczytaj postanowienia licencyjne przed rozpoczęciem korzystania z agenta. Instalacja i użycie stanowi akceptację tych warunków. Jeśli nie zgadzasz się z postanowieniami licencyjnymi, nie używaj agenta usługi Device Update dla usługi IoT Hub.
Tworzenie urządzenia lub modułu w usłudze IoT Hub i uzyskiwanie parametrów połączenia
Teraz dodaj urządzenie do usługi IoT Hub. W ramach usługi IoT Hub dla urządzenia generowany jest łańcuch połączenia.
W witrynie Azure Portal uruchom usługę IoT Hub.
Utwórz nowe urządzenie.
W okienku po lewej stronie wybierz pozycję Urządzenia. Następnie wybierz Nowe.
W obszarze Identyfikator urządzenia wprowadź nazwę urządzenia. Upewnij się, że zaznaczono pole wyboru Automatyczne generowanie kluczy .
Wybierz Zapisz. Na stronie Urządzenia na liście powinno znajdować się utworzone urządzenie.
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 w twoim przypadku użycia, a następnie kliknij Zapisz. Wybierz nowo utworzony moduł. W widoku modułu wybierz ikonę kopiowania obok pozycji podstawowe parametry połączenia.
- Opcja 2. Użyj agenta aktualizacji urządzenia z identyfikatorem urządzenia: w oknie urządzenia wybierz ikonę Kopiuj obok pozycji Podstawowy łańcuch połączenia.
Wklej skopiowane znaki do późniejszego użycia w następujących krokach:
Ten skopiowany ciąg to ciąg połączenia twojego urządzenia.
Przygotowywanie konfiguracji urządzeń na potrzeby aktualizacji urządzenia dla usługi IoT Hub
Na urządzeniu muszą znajdować się dwa pliki konfiguracji, aby usługa Device Update dla usługi IoT Hub poprawnie skonfigurowała. Pierwszy plik to plik du-config.json, który musi istnieć w /adu/du-config.json. Drugi plik to plik du-diagnostics-config.json, który musi istnieć w /adu/du-diagnostics-config.json.
Oto dwa przykłady dla 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 usługi Device Update na urządzeniu Raspberry Pi
Upewnij się, że urządzenie Raspberry Pi 3 jest połączone z siecią.
Postępuj zgodnie z tymi instrukcjami, aby dodać szczegóły konfiguracji:
Najpierw zaloguj się na maszynę za pomocą SSH, używając następującego polecenia w PowerShellu:
ssh raspberrypi3 -l rootUtwórz lub otwórz plik
du-config.jsondo edycji przy użyciu:nano /adu/du-config.jsonPo uruchomieniu polecenia powinien zostać wyświetlony otwarty edytor z plikiem . Jeśli nigdy nie utworzono pliku, będzie on pusty. Teraz skopiuj zawartość poprzedniego przykładu du-config.json i zastąp ustawienia wymagane dla urządzenia. Następnie zastąp przykładowe parametry połączenia parametrami dla urządzenia utworzonego w poprzednich krokach.
Po zakończeniu wprowadzania zmian wybierz Ctrl+X, aby zakończyć działanie edytora. Następnie wprowadź y, aby zapisać zmiany.
Teraz musisz utworzyć plik
du-diagnostics-config.jsonprzy użyciu podobnych poleceń. Zacznij od utworzenia lub otwarcia plikudu-diagnostics-config.jsondo edycji przy użyciu:nano /adu/du-diagnostics-config.jsonSkopiuj zawartość poprzedniego przykładu du-diagnostics-config.json i zamień wszelkie konfiguracje, które różnią się od domyślnej kompilacji. Przykładowy plik du-diagnostics-config.json reprezentuje domyślne lokalizacje dziennika dla usługi Device Update dla usługi IoT Hub. Należy je zmienić tylko wtedy, gdy implementacja się różni.
Po zakończeniu wprowadzania zmian wybierz Ctrl+X, aby zakończyć działanie edytora. Następnie wprowadź y, aby zapisać zmiany.
Użyj następującego polecenia, aby wyświetlić pliki znajdujące się w katalogu
/adu/. Powinieneś zobaczyć oba swoje pliki konfiguracyjne files.du-diagnostics-config.json, aby je edytować, używając:ls -la /adu/
Uruchom ponownie demona systemu aktualizacji urządzeń, aby upewnić się, że zostały zastosowane konfiguracje. Użyj następującego polecenia w terminalu zalogowanym do
raspberrypi:systemctl start adu-agentSprawdź, czy agent działa, używając następującego polecenia:
systemctl status adu-agentPowinieneś zobaczyć, że status wraca jako aktywny i oznaczony kolorem zielonym.
Podłącz urządzenie w usłudze Device Update dla IoT Hub
W okienku po lewej stronie wybierz pozycję Urządzenia.
Wybierz link z nazwą urządzenia.
Na górze strony wybierz Device Twin, 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źniaczy moduł.
W sekcji raportowanej właściwości urządzenia bliźniaczego 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 do reprezentowania wersji oprogramowania układowego uruchomionego na urządzeniu.
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
Zaloguj się do witryny Azure Portal i przejdź do centrum IoT Hub.
W okienku po lewej stronie w obszarze Urządzeniaznajdź urządzenie IoT i przejdź do bliźniaczej reprezentacji urządzenia lub bliźniaczej reprezentacji modułu.
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 wraz z agentem Device Update, wprowadź te zmiany w bliźniaku urządzenia.
Dodaj nową wartość tagu Device Update, jak pokazano poniżej:
"tags": { "ADUGroup": "<CustomTagValue>" }
Importowanie aktualizacji
Pobierz przykładowy manifest samouczka (Importowanie_Manifestu_Samouczka_Pi.json) i przykładową aktualizację (adu-update-image-raspberrypi3-0.6.5073.1.swu) z Release Assets dla najnowszej wersji agenta.
Zaloguj się do witryny Azure Portal i przejdź do centrum IoT Hub przy użyciu usługi Device Update. W okienku po lewej stronie w obszarze Automatyczne Zarządzanie urządzeniami wybierz pozycję Aktualizacje.
Wybierz kartę Aktualizacje.
Wybierz pozycję + Importuj nową aktualizację.
Wybierz + Wybierz z pojemnika magazynowego. Wybierz istniejące konto lub utwórz nowe konto przy użyciu konta + Storage. 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 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 kroku 1. Po wybraniu wszystkich plików aktualizacji wybierz pozycję Przekaż. Następnie wybierz przycisk Wybierz, aby powrócić do strony Importuj aktualizację.
Ten zrzut ekranu przedstawia krok importowania. Nazwy plików mogą nie być zgodne z nazwami używanymi w przykładzie.
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 Import history (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.
Dowiedz się więcej o sposobie importowania aktualizacji.
Tworzenie grupy aktualizacji
Przejdź do zakładki Grupy i Wdrożenia w górnej części strony.
Wybierz Dodaj grupę, aby utworzyć nową grupę.
Wybierz tag usługi IoT Hub i klasę urządzenia z listy. Następnie wybierz pozycję Utwórz grupę.
Po utworzeniu grupy zaktualizowane zostaną wykres zgodności aktualizacji oraz 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.
Twoja nowo utworzona grupa powinna być widoczna, podobnie jak wszystkie dostępne aktualizacje dla urządzeń w tej 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 na temat dodawania tagów i tworzenia grup aktualizacji.
Wdrażanie aktualizacji
Po utworzeniu grupy powinna zostać wyświetlona nowa aktualizacja dostępna dla grupy urządzeń. Link do aktualizacji powinien znajdować się pod Best update. Może być konieczne odświeżenie strony jeden raz. Dowiedz się więcej o zgodności aktualizacji.
Wybierz grupę docelową, wybierając nazwę grupy. Zostaniesz przekierowany do szczegółów grupy w obszarze Podstawowe informacje o grupie.
Aby rozpocząć wdrażanie, przejdź do karty Bieżące wdrożenie. Wybierz link wdróż obok żądanej aktualizacji w sekcji Dostępne aktualizacje. Najlepsza dostępna aktualizacja dla danej grupy jest oznaczona wyróżnieniem Najlepsze .
Zaplanuj rozpoczęcie wdrożenia natychmiast lub w przyszłości. Następnie wybierz Utwórz.
Pod Szczegóły wdrożeniastan zmienia się na Aktywny. Wdrożona aktualizacja jest oznaczona elementem (wdrażanie).
Wyświetl wykres zgodności, aby zobaczyć, że aktualizacja jest teraz w toku.
Po pomyślnym zaktualizowaniu urządzenia zobaczysz, że wykres zgodności i szczegóły wdrożenia zostały zaktualizowane w celu odzwierciedlenia tego samego.
Monitorowanie wdrożenia aktualizacji
Wybierz kartę Historia wdrożenia w górnej części strony.
Wybierz pozycję Szczegóły 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 usługi Device Update for IoT Hub na urządzeniu Raspberry Pi 3 B+.
Czyszczenie zasobów
Kiedy konto usługi Device Update, wystąpienie, centrum IoT i urządzenie IoT nie będą już potrzebne, usuń je wszystkie.