Tworzenie i aprowizowanie urządzenia usługi IoT Edge w systemie Linux przy użyciu kluczy symetrycznych
Dotyczy: IoT Edge 1.1
Ważne
Data zakończenia wsparcia usługi IoT Edge 1.1 wynosiła 13 grudnia 2022 r. Zapoznaj się z cyklem życia produktów firmy Microsoft, aby uzyskać informacje na temat sposobu obsługi tego produktu lub interfejsu API albo tej usługi lub technologii. Aby uzyskać więcej informacji na temat aktualizowania do najnowszej wersji usługi IoT Edge, zobacz Aktualizowanie usługi IoT Edge.
Ten artykuł zawiera kompleksowe instrukcje dotyczące rejestrowania i aprowizacji urządzenia usługi IoT Edge z systemem Linux, w tym instalowania usługi IoT Edge.
Każde urządzenie, które łączy się z centrum IoT Hub, ma identyfikator urządzenia używany do śledzenia komunikacji między chmurą a urządzeniem i chmurą. Urządzenie można skonfigurować przy użyciu informacji o połączeniu, w tym nazwy hosta centrum IoT, identyfikatora urządzenia i informacji używanych przez urządzenie do uwierzytelniania w usłudze IoT Hub.
Kroki opisane w tym artykule obejmują proces ręcznej aprowizacji, w którym łączysz jedno urządzenie z centrum IoT Hub. W przypadku aprowizacji ręcznej dostępne są dwie opcje uwierzytelniania urządzeń usługi IoT Edge:
Klucze symetryczne: podczas tworzenia nowej tożsamości urządzenia w usłudze IoT Hub usługa tworzy dwa klucze. Umieszczasz jeden z kluczy na urządzeniu i przedstawia klucz do usługi IoT Hub podczas uwierzytelniania.
Ta metoda uwierzytelniania jest szybsza, aby rozpocząć pracę, ale nie jest tak bezpieczna.
Podpis własny X.509: Tworzysz dwa certyfikaty tożsamości X.509 i umieszczasz je na urządzeniu. Podczas tworzenia nowej tożsamości urządzenia w usłudze IoT Hub podajesz odciski palca z obu certyfikatów. Gdy urządzenie uwierzytelnia się w usłudze IoT Hub, przedstawia jeden certyfikat, a usługa IoT Hub sprawdza, czy certyfikat jest zgodny z jego odciskiem palca.
Ta metoda uwierzytelniania jest bezpieczniejsza i zalecana w scenariuszach produkcyjnych.
W tym artykule opisano używanie kluczy symetrycznych jako metody uwierzytelniania. Jeśli chcesz używać certyfikatów X.509, zobacz Tworzenie i aprowizowanie urządzenia usługi IoT Edge w systemie Linux przy użyciu certyfikatów X.509.
Uwaga
Jeśli masz wiele urządzeń do skonfigurowania i nie chcesz ręcznie aprowizować poszczególnych urządzeń, skorzystaj z jednego z następujących artykułów, aby dowiedzieć się, jak usługa IoT Edge współpracuje z usługą aprowizacji urządzeń usługi IoT Hub:
Wymagania wstępne
W tym artykule opisano rejestrowanie urządzenia usługi IoT Edge i instalowanie na nim usługi IoT Edge. Te zadania mają różne wymagania wstępne i narzędzia używane do ich wykonania. Przed kontynuowaniem upewnij się, że zostały spełnione wszystkie wymagania wstępne.
Narzędzia do zarządzania urządzeniami
Aby wykonać kroki rejestrowania urządzenia, możesz użyć witryny Azure Portal, programu Visual Studio Code lub interfejsu wiersza polecenia platformy Azure. Każde narzędzie ma własne wymagania wstępne:
Bezpłatne lub standardowe centrum IoT w ramach subskrypcji platformy Azure.
Wymagania dotyczące urządzenia
Urządzenie z systemem Linux X64, ARM32 lub ARM64.
Firma Microsoft publikuje pakiety instalacyjne dla różnych systemów operacyjnych.
Aby uzyskać najnowsze informacje o tym, które systemy operacyjne są obecnie obsługiwane w scenariuszach produkcyjnych, zobacz Obsługiwane systemy usługi Azure IoT Edge.
Rejestrowanie własnego urządzenia
Aby zarejestrować urządzenie, w zależności od preferencji, możesz użyć witryny Azure Portal, programu Visual Studio Code lub interfejsu wiersza polecenia platformy Azure.
W centrum IoT w witrynie Azure Portal urządzenia usługi IoT Edge są tworzone i zarządzane oddzielnie od urządzeń IoT, które nie są włączone na urządzeniach brzegowych.
Zaloguj się do witryny Azure Portal i przejdź do centrum IoT Hub.
W okienku po lewej stronie wybierz pozycję Urządzenia z menu, a następnie wybierz pozycję Dodaj urządzenie.
Na stronie Tworzenie urządzenia podaj następujące informacje:
- Utwórz opisowy identyfikator urządzenia. Zanotuj ten identyfikator urządzenia, ponieważ będzie on używany później.
- Zaznacz pole wyboru Urządzenie usługi IoT Edge.
- Wybierz pozycję Klucz symetryczny jako typ uwierzytelniania.
- Użyj ustawień domyślnych, aby automatycznie wygenerować klucze uwierzytelniania i połączyć nowe urządzenie z centrum.
Wybierz pozycję Zapisz.
Po zarejestrowaniu urządzenia w usłudze IoT Hub pobierz informacje używane do ukończenia instalacji i aprowizacji środowiska uruchomieniowego usługi IoT Edge.
Wyświetlanie zarejestrowanych urządzeń i pobieranie informacji o aprowizacji
Urządzenia korzystające z uwierzytelniania klucza symetrycznego wymagają parametry połączenia do ukończenia instalacji i aprowizacji środowiska uruchomieniowego usługi IoT Edge.
Urządzenia z obsługą krawędzi, które łączą się z centrum IoT Hub, są wyświetlane na stronie Urządzenia . Listę można filtrować według typu Urządzenie usługi Iot Edge.
Gdy wszystko będzie gotowe do skonfigurowania urządzenia, potrzebujesz parametry połączenia, który łączy urządzenie fizyczne z jego tożsamością w centrum IoT.
Urządzenia uwierzytelnione za pomocą kluczy symetrycznych mają dostępne parametry połączenia do kopiowania w portalu.
- Na stronie Urządzenia w portalu wybierz z listy identyfikator urządzenia usługi IoT Edge.
- Skopiuj wartość podstawowych parametrów połączenia lub pomocniczych parametrów połączenia.
Instalowanie usługi IoT Edge
W tej sekcji przygotujesz maszynę wirtualną z systemem Linux lub urządzenie fizyczne dla usługi IoT Edge. Następnie zainstalujesz przeglądarkę IoT Edge.
Uruchom następujące polecenia, aby dodać repozytorium pakietów, a następnie dodaj klucz podpisywania pakietu firmy Microsoft do listy zaufanych kluczy.
Ważne
30 czerwca 2022 r. urządzenie Raspberry Pi OS Stretch zostało wycofane z listy pomocy technicznej systemu operacyjnego Tier 1. Aby uniknąć potencjalnych luk w zabezpieczeniach, zaktualizuj system operacyjny hosta do Bullseye.
Instalowanie można wykonać za pomocą kilku poleceń. Otwórz terminal i uruchom następujące polecenia:
20.04:
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb
18.04:
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
Uwaga
Pakiety oprogramowania usługi Azure IoT Edge podlegają postanowieniom licencyjnym znajdującym się w każdym pakiecie (usr/share/doc/{package-name}
lub LICENSE
katalogu). Przeczytaj postanowienia licencyjne przed użyciem pakietu. Instalacja i użycie pakietu stanowi akceptację niniejszych warunków. Jeśli nie zgadzasz się z postanowieniami licencyjnymi, nie używaj tego pakietu.
Instalowanie aparatu kontenera
Usługa Azure IoT Edge korzysta ze środowiska uruchomieniowego kontenera zgodnego z technologią OCI. W przypadku scenariuszy produkcyjnych zalecamy użycie aparatu Moby. Aparat Moby jest jedynym oficjalnie obsługiwanym aparatem kontenerów w usłudze IoT Edge. Obrazy kontenerów platformy Docker CE/EE są zgodne ze środowiskiem uruchomieniowym Moby.
Zainstaluj aparat Moby.
sudo apt-get update; \
sudo apt-get install moby-engine
Po pomyślnym zainstalowaniu aparatu Moby skonfiguruj go do używania local
sterownika rejestrowania jako mechanizmu rejestrowania. Aby dowiedzieć się więcej na temat konfiguracji rejestrowania, zobacz Lista kontrolna wdrażania produkcyjnego.
Utwórz lub otwórz plik konfiguracji demona platformy Docker pod adresem
/etc/docker/daemon.json
.Ustaw domyślny sterownik rejestrowania na
local
sterownik rejestrowania, jak pokazano w poniższym przykładzie.{ "log-driver": "local" }
Uruchom ponownie aparat kontenera, aby zmiany zaczęły obowiązywać.
sudo systemctl restart docker
Napiwek
Jeśli podczas instalowania aparatu kontenera Moby wystąpią błędy, sprawdź zgodność jądra systemu Linux pod kątem zgodności z narzędziem Moby. Niektórzy producenci urządzeń osadzonych wysyłają obrazy urządzeń, które zawierają niestandardowe jądra systemu Linux bez funkcji wymaganych do zapewnienia zgodności aparatu kontenera. Uruchom następujące polecenie, które używa skryptu check-config dostarczonego przez program Moby, aby sprawdzić konfigurację jądra:
curl -ssl https://raw.githubusercontent.com/moby/moby/master/contrib/check-config.sh -o check-config.sh chmod +x check-config.sh ./check-config.sh
W danych wyjściowych skryptu sprawdź, czy wszystkie elementy w obszarze
Generally Necessary
iNetwork Drivers
są włączone. Jeśli brakuje funkcji, włącz je, ponownie skompilując jądro ze źródła i wybierając skojarzone moduły do włączenia w odpowiedniej konfiguracji jądra. Podobnie, jeśli używasz generatora konfiguracji jądra, takiego jakdefconfig
lubmenuconfig
, znajdź i włącz odpowiednie funkcje i odpowiednio skompiluj jądro. Po wdrożeniu nowo zmodyfikowanego jądra ponownie uruchom skrypt check-config, aby sprawdzić, czy wszystkie wymagane funkcje zostały pomyślnie włączone.
Instalowanie środowiska uruchomieniowego usługi IoT Edge
Demon zabezpieczeń usługi IoT Edge zapewnia i utrzymuje standardy zabezpieczeń na urządzeniu usługi IoT Edge. Demon uruchamia się na każdym rozruchu i uruchamia urządzenie, uruchamiając resztę środowiska uruchomieniowego usługi IoT Edge.
Kroki opisane w tej sekcji reprezentują typowy proces instalowania najnowszej wersji na urządzeniu z połączeniem internetowym. Jeśli musisz zainstalować określoną wersję, taką jak wersja wstępna, lub zainstalować ją w trybie offline, wykonaj kroki instalacji w trybie offline lub określonej wersji w dalszej części tego artykułu.
Zainstaluj usługę IoT Edge w wersji 1.1.* wraz z pakietem libiothsm-std :
sudo apt-get update; \
sudo apt-get install iotedge
Uwaga
Usługa IoT Edge w wersji 1.1 to długoterminowa gałąź pomocy technicznej usługi IoT Edge. Jeśli korzystasz ze starszej wersji, zalecamy zainstalowanie lub zaktualizowanie do najnowszej poprawki, ponieważ starsze wersje nie są już obsługiwane.
Aprowizuj urządzenie przy użyciu tożsamości w chmurze
Teraz, gdy aparat kontenera i środowisko uruchomieniowe usługi IoT Edge są zainstalowane na urządzeniu, możesz przystąpić do następnego kroku, który polega na skonfigurowaniu urządzenia przy użyciu tożsamości chmury i informacji uwierzytelniania.
Na urządzeniu usługi IoT Edge otwórz plik konfiguracji.
sudo nano /etc/iotedge/config.yaml
Znajdź konfiguracje aprowizacji pliku i usuń komentarz konfiguracji ręcznej aprowizacji przy użyciu sekcji parametry połączenia, jeśli nie jest jeszcze niezakomentowany.
# Manual provisioning configuration using a connection string
provisioning:
source: "manual"
device_connection_string: "ADD_DEVICE_CONNECTION_STRING_HERE"
Zaktualizuj wartość device_connection_string przy użyciu parametry połączenia z urządzenia usługi IoT Edge. Upewnij się, że wszystkie inne sekcje aprowizacji są komentowane. Upewnij się, że aprowizacja: wiersz nie ma wcześniejszego odstępu i że zagnieżdżone elementy są wcięte przez dwie spacje.
Aby wkleić zawartość schowka do systemu Nano Shift+Right Click
lub naciśnij Shift+Insert
.
Zapisz i zamknij plik.
CTRL + X
, , Y
Enter
Po wprowadzeniu informacji o aprowizacji w pliku konfiguracji uruchom ponownie demona:
sudo systemctl restart iotedge
Weryfikowanie pomyślnej konfiguracji
Sprawdź, czy środowisko uruchomieniowe zostało pomyślnie zainstalowane i skonfigurowane na urządzeniu usługi IoT Edge.
Napiwek
Uruchomienie poleceń iotedge
wymaga podniesionych uprawnień. Po wylogowaniu się z komputera i ponownym zalogowaniu się do niego po raz pierwszy od zainstalowania środowiska uruchomieniowego usługi IoT Edge Twoje uprawnienia zostaną automatycznie zaktualizowane. Do tego czasu użyj sudo
polecenia przed poleceniami.
Sprawdź, czy usługa systemowa usługi IoT Edge jest uruchomiona.
sudo systemctl status iotedge
Jeśli potrzebujesz rozwiązać problem z usługą, pobierz jej dzienniki.
journalctl -u iotedge
check
Użyj narzędzia , aby zweryfikować konfigurację i stan połączenia urządzenia.
sudo iotedge check
Napiwek
Zawsze używaj sudo
narzędzia do sprawdzania, nawet po zaktualizowaniu uprawnień. Narzędzie wymaga podniesionych uprawnień, aby uzyskać dostęp do pliku konfiguracji w celu zweryfikowania stanu konfiguracji.
Uwaga
Na nowo aprowizowanych urządzeniach może zostać wyświetlony błąd związany z usługą IoT Edge Hub:
× gotowości produkcyjnej: katalog magazynu usługi Edge Hub jest utrwalany w systemie plików hosta — błąd
Nie można sprawdzić bieżącego stanu kontenera edgeHub
Ten błąd jest oczekiwany na nowo zaaprowizowanych urządzeniach, ponieważ moduł usługi IoT Edge Hub nie jest uruchomiony. Aby rozwiązać ten problem, w usłudze IoT Hub ustaw moduły dla urządzenia i utwórz wdrożenie. Utworzenie wdrożenia urządzenia powoduje uruchomienie modułów na urządzeniu, w tym modułu usługi IoT Edge Hub.
Wyświetl wszystkie moduły uruchomione na urządzeniu usługi IoT Edge. Po uruchomieniu usługi po raz pierwszy powinien zostać wyświetlony tylko uruchomiony moduł edgeAgent . Moduł edgeAgent działa domyślnie i pomaga zainstalować i uruchomić dodatkowe moduły wdrażane na urządzeniu.
sudo iotedge list
Podczas tworzenia nowego urządzenia usługi IoT Edge zostanie wyświetlony kod 417 -- The device's deployment configuration is not set
stanu w witrynie Azure Portal. Ten stan jest normalny i oznacza, że urządzenie jest gotowe do otrzymania wdrożenia modułu.
Instalacja w trybie offline lub określonej wersji (opcjonalnie)
Kroki opisane w tej sekcji dotyczą scenariuszy, które nie są objęte standardowymi krokami instalacji. Mogą to być na przykład:
- Instalowanie usługi IoT Edge w trybie offline
- Instalowanie wersji kandydata do wydania
Wykonaj kroki opisane w tej sekcji, jeśli chcesz zainstalować określoną wersję środowiska uruchomieniowego usługi Azure IoT Edge, która nie jest dostępna za pośrednictwem menedżera pakietów. Lista pakietów firmy Microsoft zawiera tylko ograniczony zestaw najnowszych wersji i ich podrzędnych wersji, dlatego te kroki dotyczą wszystkich osób, które chcą zainstalować starszą wersję lub wersję kandydata do wydania.
Za pomocą poleceń curl można kierować pliki składników bezpośrednio z repozytorium GitHub usługi IoT Edge.
Przejdź do wersji usługi Azure IoT Edge i znajdź wersję wydania, którą chcesz kierować.
Rozwiń sekcję Zasoby dla tej wersji.
Każda wersja powinna zawierać nowe pliki demona zabezpieczeń usługi IoT Edge i modułu hsmlib. Jeśli zamierzasz zainstalować usługę IoT Edge na urządzeniu w trybie offline, pobierz te pliki z wyprzedzeniem. W przeciwnym razie użyj następujących poleceń, aby zaktualizować te składniki.
Znajdź plik libiothsm-std zgodny z architekturą urządzenia usługi IoT Edge. Kliknij prawym przyciskiem myszy link do pliku i skopiuj adres linku.
Użyj skopiowanego linku w poniższym poleceniu, aby zainstalować wersję modułu hsmlib:
curl -L <libiothsm-std_link> -o libiothsm-std.deb && sudo apt-get install ./libiothsm-std.deb
Znajdź plik iotedge zgodny z architekturą urządzenia usługi IoT Edge. Kliknij prawym przyciskiem myszy link do pliku i skopiuj adres linku.
Użyj skopiowanego linku w poniższym poleceniu, aby zainstalować wersję demona zabezpieczeń usługi IoT Edge.
curl -L iotedge_link_here -o iotedge.deb && sudo apt-get install ./iotedge.deb
Teraz, gdy aparat kontenera i środowisko uruchomieniowe usługi IoT Edge są zainstalowane na urządzeniu, możesz przystąpić do następnego kroku, czyli aprowizować urządzenie przy użyciu tożsamości w chmurze.
Odinstalowywanie usługi IoT Edge
Jeśli chcesz usunąć instalację usługi IoT Edge z urządzenia, użyj następujących poleceń.
Usuń środowisko uruchomieniowe usługi IoT Edge.
sudo apt-get autoremove iotedge
Po usunięciu środowiska uruchomieniowego usługi IoT Edge wszystkie utworzone przez niego kontenery zostaną zatrzymane, ale nadal istnieją na urządzeniu. Wyświetl wszystkie kontenery, aby zobaczyć, które z nich pozostają.
sudo docker ps -a
Usuń kontenery z urządzenia, w tym dwa kontenery środowiska uruchomieniowego.
sudo docker rm -f <container name>
Na koniec usuń środowisko uruchomieniowe kontenera z urządzenia.
sudo apt-get autoremove --purge moby-engine