Samouczek: aktualizacja urządzenia dla Azure IoT Hub przy użyciu agenta pakietu w systemie Ubuntu Server 18.04 x64
Usługa Device Update dla Azure IoT Hub obsługuje aktualizacje oparte na obrazach, oparte na pakietach i oparte na skryptach.
Aktualizacje oparte na pakietach to aktualizacje docelowe, które zmieniają tylko określony składnik lub aplikację na urządzeniu. Prowadzą one do mniejszego zużycia przepustowości i pomagają skrócić czas pobierania i instalowania aktualizacji. Aktualizacje oparte na pakietach zwykle umożliwiają również mniejsze przestoje urządzeń podczas stosowania aktualizacji i unikanie narzutów związanych z tworzeniem obrazów. Używają manifestu APT, który dostarcza agentowi usługi Device Update informacje potrzebne do pobrania i zainstalowania pakietów określonych w pliku manifestu APT (i ich zależności) z wyznaczonego repozytorium.
Ten samouczek przeprowadzi Cię przez proces aktualizowania usługi Azure IoT Edge w systemie Ubuntu Server 18.04 x64 przy użyciu agenta pakietu aktualizacji urządzeń. Mimo że samouczek demonstruje aktualizowanie IoT Edge, wykonując podobne kroki, można zaktualizować inne pakiety, takie jak używany przez niego aparat kontenera.
Narzędzia i pojęcia w tym samouczku nadal mają zastosowanie, nawet jeśli planujesz używać innej konfiguracji platformy systemu operacyjnego. Zakończ to wprowadzenie do kompleksowego procesu aktualizacji. Następnie wybierz preferowaną formę aktualizowania platformy systemu operacyjnego, aby uzyskać szczegółowe informacje.
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Pobierz i zainstaluj agenta usługi Device Update oraz jego zależności.
- Dodaj tag do urządzenia.
- Zaimportuj aktualizację.
- Utwórz grupę urządzeń.
- Wdrażanie aktualizacji pakietu.
- Monitorowanie wdrożenia aktualizacji.
Wymagania wstępne
Jeśli jeszcze tego nie zrobiono, utwórz konto i wystąpienie usługi Device Update. Konfigurowanie centrum IoT Hub.
Potrzebujesz parametrów połączenia dla urządzenia IoT Edge.
Jeśli do wcześniejszego testowania użyto samouczka agenta symulatora , uruchom następujące polecenie, aby wywołać procedurę obsługi APT i wdrożyć aktualizacje pakietów over-the-air w tym samouczku:
# sudo /usr/bin/AducIotAgent --register-content-handler /var/lib/adu/extensions/sources/libmicrosoft_apt_1.so --update-type 'microsoft/a pt:1'
Przygotowywanie urządzenia
Przygotuj urządzenie automatycznie lub ręcznie.
Użyj przycisku Zautomatyzowane wdrażanie na platformie Azure
Dla wygody w tym samouczku użyto opartego na chmurzeszablonu usługi Azure Resource Manager, aby ułatwić szybkie skonfigurowanie maszyny wirtualnej z systemem Ubuntu 18.04 LTS. Instaluje zarówno środowisko uruchomieniowe usługi Azure IoT Edge, jak i agenta pakietu Device Update. Następnie automatycznie konfiguruje urządzenie przy użyciu informacji o aprowizowaniu przy użyciu parametrów połączenia urządzenia dla dostarczanego urządzenia IoT Edge (wymagania wstępne). Szablon Resource Manager pozwala również uniknąć konieczności uruchomienia sesji SSH w celu ukończenia instalacji.
Aby rozpocząć, wybierz przycisk:
Wypełnij dostępne pola tekstowe:
- Subskrypcja: aktywna subskrypcja platformy Azure do wdrożenia maszyny wirtualnej.
- Grupa zasobów: istniejąca lub nowo utworzona grupa zasobów zawierająca maszynę wirtualną i skojarzone z nią zasoby.
- Region: region geograficzny do wdrożenia maszyny wirtualnej. Ta wartość jest domyślnie ustawiona na lokalizację wybranej grupy zasobów.
- Prefiks etykiety DNS: wymagana wartość wybranej wartości używanej do prefiksu nazwy hosta maszyny wirtualnej.
- Administracja Nazwa użytkownika: nazwa użytkownika, która jest udostępniana uprawnienia główne podczas wdrażania.
- Parametry połączenia urządzenia: parametry połączenia urządzenia utworzonego w ramach zamierzonego centrum IoT.
- Rozmiar maszyny wirtualnej: rozmiar maszyny wirtualnej do wdrożenia.
- Wersja systemu operacyjnego Ubuntu: wersja systemu operacyjnego Ubuntu, która ma zostać zainstalowana na podstawowej maszynie wirtualnej. Pozostaw wartość domyślną bez zmian, ponieważ zostanie ona już ustawiona na Ubuntu 18.04-LTS.
- Typ uwierzytelniania: wybierz wartość sshPublicKey lub hasło na podstawie preferencji.
- Administracja hasło lub klucz: wartość klucza publicznego SSH lub wartość hasła na podstawie wyboru typu uwierzytelniania.
Po wypełnieniu wszystkich pól zaznacz pole wyboru w dolnej części strony, aby zaakceptować warunki. Wybierz pozycję Kup , aby rozpocząć wdrażanie.
Sprawdź, czy wdrożenie zakończyło się pomyślnie. Poczekaj kilka minut po zakończeniu wdrażania po zakończeniu instalacji i konfiguracji, aby zakończyć instalowanie IoT Edge i agenta aktualizacji pakietu urządzenia.
Zasób maszyny wirtualnej powinien zostać wdrożony w wybranej grupie zasobów. Zanotuj nazwę maszyny w formacie
vm-0000000000000
. Zwróć również uwagę na skojarzona nazwa DNS, która ma format<dnsLabelPrefix>
.<location>
. cloudapp.azure.com.Nazwę DNS można uzyskać w sekcji Przegląd nowo wdrożonej maszyny wirtualnej w Azure Portal.
Porada
Aby po skonfigurowaniu połączyć się za pomocą protokołu SSH z tą maszyną wirtualną, użyj skojarzonej nazwy DNS z następującym poleceniem:
ssh <adminUsername>@<DNS_Name>
.Otwórz szczegóły konfiguracji (zobacz, jak skonfigurować plik konfiguracji tutaj , za pomocą poniższego polecenia. Ustaw parametr connectionType jako "AIS" i connectionData jako puste parametry.
/etc/adu/du-config.json
- Uruchom ponownie agenta usługi Device Update, uruchamiając następujące polecenie:
sudo systemctl restart adu-agent
Usługa Device Update dla pakietów oprogramowania Azure IoT Hub podlega następującym postanowieniom licencyjnym:
Przeczytaj postanowienia licencyjne przed użyciem pakietu. Instalacja i korzystanie z pakietu stanowi akceptację niniejszych warunków. Jeśli nie zgadzasz się z postanowieniami licencyjnymi, nie używaj tego pakietu.
Ręczne przygotowywanie urządzenia
Podobnie jak w przypadku kroków zautomatyzowanych przez skrypt cloud-init, następujące kroki ręczne są używane do instalowania i konfigurowania urządzenia. Wykonaj następujące kroki, aby przygotować urządzenie fizyczne.
Postępuj zgodnie z instrukcjami, aby zainstalować środowisko uruchomieniowe usługi Azure IoT Edge.
Uwaga
Agent usługi Device Update nie zależy od IoT Edge. Jednak polega ona na demonie usługi tożsamości IoT zainstalowanym z IoT Edge (1.2.0 i nowszym), aby uzyskać tożsamość i połączyć się z IoT Hub.
Mimo że nie zostało to omówione w tym samouczku, demon usługi tożsamości IoT można zainstalować autonomicznie na urządzeniach IoT z systemem Linux. Sekwencja instalacji ma znaczenie. Agent pakietu Device Update musi być zainstalowany po usłudze tożsamości IoT. W przeciwnym razie agent pakietu nie zostanie zarejestrowany jako autoryzowany składnik w celu nawiązania połączenia z IoT Hub.
Zainstaluj pakiety .deb agenta usługi Device Update:
sudo apt-get install deviceupdate-agent deliveryoptimization-plugin-apt
Wprowadź podstawowe parametry połączenia urządzenia IoT (lub urządzenia, w zależności od sposobu aprowizowania urządzenia za pomocą usługi Device Update) w pliku konfiguracji, uruchamiając następujące polecenie:
/etc/adu/du-config.json
Uruchom ponownie agenta usługi Device Update, uruchamiając następujące polecenie:
sudo systemctl restart adu-agent
Usługa Device Update dla pakietów oprogramowania Azure IoT Hub podlega następującym postanowieniom licencyjnym:
Przeczytaj postanowienia licencyjne przed użyciem pakietu. Instalacja i korzystanie z pakietu stanowi akceptację niniejszych warunków. Jeśli nie zgadzasz się z postanowieniami licencyjnymi, nie używaj tego pakietu.
Dodawanie tagu do urządzenia
Zaloguj się do Azure Portal i przejdź do centrum IoT.
W okienku po lewej stronie w obszarze Urządzenia znajdź urządzenie IoT Edge 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 z agentem usługi Device Update, wprowadź te zmiany w bliźniaczej reprezentacji urządzenia.
Dodaj nową wartość tagu Device Update, jak pokazano poniżej:
"tags": { "ADUGroup": "<CustomTagValue>" },
Importowanie aktualizacji
Przejdź do pozycji Wydania usługi Device Update w usłudze GitHub i wybierz listę rozwijaną Zasoby . Pobierz
Tutorial_IoTEdge_PackageUpdate.zip
, wybierając go. Wyodrębnij zawartość folderu, aby odnaleźć przykładowy manifest APT (sample-1.0.2-aziot-edge-apt-manifest.json) i odpowiadający mu manifest importu (sample-1.0.2-aziot-edge-importManifest.json).Zaloguj się do Azure Portal i przejdź do centrum IoT Hub za pomocą 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 pozycję + Wybierz z kontenera magazynu. Wybierz istniejące konto lub utwórz nowe konto przy użyciu pozycji + Konto magazynu. Następnie wybierz istniejący kontener lub utwórz nowy kontener przy użyciu polecenia + Kontener. Ten kontener służy do przygotowania plików aktualizacji na potrzeby importowania.
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 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 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 na temat importowania aktualizacji.
Tworzenie grupy aktualizacji
Przejdź do karty Grupy i wdrożenia w górnej części strony.
Wybierz przycisk Dodaj grupę , aby utworzyć nową grupę.
Wybierz z listy tag IoT Hub i klasę urządzenia. Następnie wybierz pozycję Utwórz grupę.
Po utworzeniu grupy zostanie wyświetlona aktualizacja wykresu zgodności aktualizacji i listy 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.
Nowo utworzona grupa powinna być widoczna i wszystkie dostępne aktualizacje dla urządzeń w nowej 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 o dodawaniu tagów i tworzeniu grup aktualizacji.
Wdrażanie aktualizacji
Po utworzeniu grupy powinna zostać wyświetlona nowa aktualizacja dostępna dla grupy urządzeń z linkiem do aktualizacji w obszarze Najlepsza aktualizacja. Może być konieczne odświeżenie raz. Dowiedz się więcej o zgodności aktualizacji.
Wybierz grupę docelową, wybierając nazwę grupy. Zostaną przekierowane do szczegółów grupy w obszarze Podstawowe informacje o grupie.
Aby zainicjować wdrożenie, przejdź do karty Bieżące wdrożenie . Wybierz link wdrażania obok żądanej aktualizacji z 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 pozycję Utwórz.
Porada
Domyślnie data i godzina rozpoczęcia to 24 godziny od bieżącej godziny. Pamiętaj, aby wybrać inną datę i godzinę, jeśli chcesz, aby wdrożenie zaczęło się wcześniej.
W obszarze Szczegóły wdrożeniastan zmieni 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, aby odzwierciedlić to samo.
Monitorowanie wdrożenia aktualizacji
Wybierz kartę Historia wdrożenia w górnej części strony.
Wybierz link szczegółów obok utworzonego wdrożenia.
Wybierz pozycję Odśwież , aby wyświetlić najnowsze szczegóły stanu.
Ukończono pomyślną aktualizację kompleksowego pakietu przy użyciu usługi Device Update dla IoT Hub na urządzeniu z systemem Ubuntu Server 18.04 x64.
Czyszczenie zasobów
Gdy konto aktualizacji urządzenia, wystąpienie i centrum IoT Hub nie będą już potrzebne, wyczyść je. Wyczyść również urządzenie IoT Edge, jeśli maszyna wirtualna została utworzona za pomocą przycisku Wdróż na platformie Azure. Aby wyczyścić zasoby, przejdź do każdego zasobu i wybierz pozycję Usuń. Wyczyść wystąpienie aktualizacji urządzenia przed wyczyszczeniem konta aktualizacji urządzenia.
Następne kroki
Skorzystaj z następujących samouczków, aby uzyskać prostą demonstrację aktualizacji urządzenia dla IoT Hub:
- Aktualizacja obrazu: wprowadzenie do obrazu Urządzenia Raspberry Pi 3 B+ z dokumentacją yocto rozszerzalną za pośrednictwem open source w celu utworzenia własnych obrazów dla innej architektury zgodnie z potrzebami.
- Aktualizacja serwera proxy: Wprowadzenie do korzystania z agenta binarnego usługi Device Update dla urządzeń podrzędnych.
- Wprowadzenie do korzystania z agenta referencyjnego symulatora systemu Ubuntu (18.04 x64).
- Usługa Device Update dla Azure IoT Hub samouczka dotyczącego systemu operacyjnego w czasie rzeczywistym platformy Azure.