Tworzenie i aprowizowanie IoT Edge dla systemu Linux na urządzeniach z systemem Windows na dużą skalę przy użyciu kluczy symetrycznych
Dotyczy ikony: IoT Edge 1.1
Ważne
IoT Edge 1.1 data zakończenia wsparcia 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 IoT Edge, zobacz Update IoT Edge.
Ten artykuł zawiera kompleksowe instrukcje dotyczące automatycznego aprowizowania co najmniej jednego IoT Edge dla systemu Linux na urządzeniach z systemem Windows przy użyciu kluczy symetrycznych. Możesz automatycznie aprowizować urządzenia platformy Azure IoT Edge za pomocą usługi Azure IoT Hub device provisioning Service (DPS). Jeśli nie znasz procesu automatycznego aprowizacji, przed kontynuowaniem zapoznaj się z omówieniem aprowizacji .
Zadania są następujące:
- Utwórz rejestrację indywidualną dla jednego urządzenia lub rejestrację grupową dla zestawu urządzeń.
- Wdróż maszynę wirtualną z systemem Linux przy użyciu zainstalowanego środowiska uruchomieniowego IoT Edge i połącz ją z IoT Hub.
Zaświadczanie klucza symetrycznego to proste podejście do uwierzytelniania urządzenia przy użyciu wystąpienia usługi aprowizacji urządzeń. Ta metoda zaświadczania reprezentuje środowisko "Hello world" dla deweloperów, którzy są nowi w zakresie aprowizacji urządzeń lub nie mają rygorystycznych wymagań dotyczących zabezpieczeń. Zaświadczania urządzeń przy użyciu certyfikatów TPM lub X.509 są bezpieczniejsze i powinny być używane do bardziej rygorystycznych wymagań dotyczących zabezpieczeń.
Wymagania wstępne
Zasoby w chmurze
- Aktywne centrum IoT
- Wystąpienie usługi aprowizacji urządzeń IoT Hub na platformie Azure połączone z centrum IoT
- Jeśli nie masz wystąpienia usługi aprowizacji urządzeń, możesz postępować zgodnie z instrukcjami w przewodniku Szybki start Tworzenie nowej usługi aprowizacji urządzeń IoT Hub i Łączenie centrum IoT Hub i usługi aprowizacji urządzeń w przewodniku Szybki start IoT Hub device provisioning Service.
- Po uruchomieniu usługi aprowizacji urządzeń skopiuj wartość pola Zakres identyfikatora ze strony przeglądu. Ta wartość jest używana podczas konfigurowania środowiska uruchomieniowego IoT Edge.
Wymagania dotyczące urządzeń
Urządzenie z systemem Windows z następującymi minimalnymi wymaganiami:
Wymagania systemowe
- Windows 10 1/11 (Pro, Enterprise, IoT Enterprise)
- Windows Server 20191/2022
1 Windows 10 i minimalna kompilacja systemu Windows Server 2019 17763 z zainstalowanymi wszystkimi bieżącymi aktualizacjami zbiorczymi.
Wymagania sprzętowe
- Minimalna ilość wolnej pamięci: 1 GB
- Minimalna ilość wolnego miejsca na dysku: 10 GB
Obsługa wirtualizacji
- W Windows 10 włącz funkcję Hyper-V. Aby uzyskać więcej informacji, zobacz Instalowanie funkcji Hyper-V w Windows 10.
- W systemie Windows Server zainstaluj rolę funkcji Hyper-V i utwórz domyślny przełącznik sieciowy. Aby uzyskać więcej informacji, zobacz Zagnieżdżone wirtualizacji dla platformy Azure IoT Edge dla systemu Linux w systemie Windows.
- Na maszynie wirtualnej skonfiguruj wirtualizację zagnieżdżonych. Aby uzyskać więcej informacji, zobacz wirtualizacja zagnieżdżona.
Obsługa sieci
- System Windows Server nie jest wyposażony w przełącznik domyślny. Przed wdrożeniem systemu EFLOW na urządzeniu z systemem Windows Server należy utworzyć przełącznik wirtualny. Aby uzyskać więcej informacji, zobacz Tworzenie przełącznika wirtualnego dla systemu Linux w systemie Windows.
- Wersje programu Windows Desktop są dostarczane z przełącznikiem domyślnym, który może być używany do instalacji systemu EFLOW. W razie potrzeby możesz utworzyć własny niestandardowy przełącznik wirtualny.
Porada
Jeśli chcesz użyć modułów z przyspieszonym procesorem GPU systemu Linux w usłudze Azure IoT Edge dla systemu Linux we wdrożeniu systemu Windows, należy wziąć pod uwagę kilka opcji konfiguracji.
Konieczne będzie zainstalowanie odpowiednich sterowników w zależności od architektury procesora GPU i może być konieczne uzyskanie dostępu do kompilacji programu testów testów systemu Windows. Aby określić potrzeby konfiguracji i spełnić te wymagania wstępne, zobacz Przyspieszanie procesora GPU dla platformy Azure IoT Edge dla systemu Linux w systemie Windows.
Upewnij się, że nadszedł czas, aby spełnić wymagania wstępne dotyczące przyspieszania procesora GPU. Jeśli zdecydujesz się na przyspieszenie procesora GPU podczas instalacji, musisz ponownie uruchomić proces instalacji.
Narzędzia dla deweloperów
Do zarządzania urządzeniami IoT Edge można użyć programu PowerShell lub Windows Admin Center. Każde narzędzie ma własne wymagania wstępne:
Jeśli chcesz użyć programu PowerShell, wykonaj następujące kroki, aby przygotować urządzenie docelowe do instalacji usługi Azure IoT Edge dla systemu Linux w systemie Windows i wdrożenia maszyny wirtualnej z systemem Linux:
Ustaw zasady wykonywania na urządzeniu docelowym na
AllSigned
wartość . Bieżące zasady wykonywania można sprawdzić w wierszu polecenia programu PowerShell z podwyższonym poziomem uprawnień przy użyciu następującego polecenia:Get-ExecutionPolicy -List
Jeśli zasady wykonywania elementu
local machine
nieAllSigned
są , można ustawić zasady wykonywania przy użyciu:Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
Aby uzyskać więcej informacji na temat modułu Azure IoT Edge dla systemu Linux w Windows PowerShell, zobacz dokumentację funkcji programu PowerShell.
Tworzenie rejestracji usługi DPS
Utwórz rejestrację, aby aprowizować co najmniej jedno urządzenie za pośrednictwem usługi DPS.
Jeśli chcesz aprowizować jedno urządzenie IoT Edge, utwórz rejestrację indywidualną. Jeśli potrzebujesz aprowizacji wielu urządzeń, wykonaj kroki tworzenia rejestracji grupy usługi DPS.
Podczas tworzenia rejestracji w usłudze DPS możesz zadeklarować początkowy stan bliźniaczej reprezentacji urządzenia. W bliźniaczej reprezentacji urządzenia można ustawić tagi na grupowanie urządzeń według dowolnej metryki potrzebnej w rozwiązaniu, takiej jak region, środowisko, lokalizacja lub typ urządzenia. Te tagi służą do tworzenia wdrożeń automatycznych.
Aby uzyskać więcej informacji na temat rejestracji w usłudze aprowizacji urządzeń, zobacz How to manage device enrollments (Jak zarządzać rejestracjami urządzeń).
Tworzenie rejestracji indywidualnej usługi DPS
Porada
Kroki opisane w tym artykule dotyczą Azure Portal, ale można również utworzyć rejestracje indywidualne przy użyciu interfejsu wiersza polecenia platformy Azure. Aby uzyskać więcej informacji, zobacz az iot dps enrollment ( Az iot dps enrollment). W ramach polecenia interfejsu wiersza polecenia użyj flagi z obsługą krawędzi, aby określić, że rejestracja jest przeznaczona dla urządzenia IoT Edge.
W Azure Portal przejdź do wystąpienia usługi aprowizacji urządzeń IoT Hub.
W obszarze Ustawienia wybierz pozycję Zarządzaj rejestracjami.
Wybierz pozycję Dodaj rejestrację indywidualną , a następnie wykonaj następujące kroki, aby skonfigurować rejestrację:
W obszarze Mechanizm wybierz pozycję Klucz symetryczny.
Podaj unikatowy identyfikator rejestracji dla urządzenia.
Opcjonalnie podaj identyfikator urządzenia IoT Hub. Identyfikatory urządzeń można użyć do kierowania poszczególnych urządzeń na potrzeby wdrożenia modułu. Jeśli nie podasz identyfikatora urządzenia, zostanie użyty identyfikator rejestracji.
Wybierz pozycję Prawda, aby zadeklarować, że rejestracja dotyczy urządzenia IoT Edge.
Opcjonalnie dodaj wartość tagu do stanu początkowej bliźniaczej reprezentacji urządzenia. Możesz użyć tagów do grup docelowych urządzeń na potrzeby wdrożenia modułu. Przykład:
{ "tags": { "environment": "test" }, "properties": { "desired": {} } }
Wybierz pozycję Zapisz.
Skopiuj wartość klucza podstawowego rejestracji indywidualnej do użycia podczas instalowania środowiska uruchomieniowego IoT Edge.
Teraz, gdy rejestracja istnieje dla tego urządzenia, środowisko uruchomieniowe IoT Edge może automatycznie aprowizować urządzenie podczas instalacji.
Instalowanie IoT Edge
Wdróż platformę Azure IoT Edge dla systemu Linux w systemie Windows na urządzeniu docelowym.
Zainstaluj IoT Edge dla systemu Linux w systemie Windows na urządzeniu docelowym.
Uwaga
Poniższy proces programu PowerShell przedstawia sposób wdrażania IoT Edge dla systemu Linux w systemie Windows na urządzeniu lokalnym. Aby wdrożyć je na zdalnym urządzeniu docelowym przy użyciu programu PowerShell, możesz użyć zdalnego programu PowerShell do nawiązania połączenia z urządzeniem zdalnym i zdalnie uruchomić te polecenia na tym urządzeniu.
W sesji programu PowerShell z podwyższonym poziomem uprawnień uruchom każde z następujących poleceń, aby pobrać IoT Edge dla systemu Linux w systemie Windows.
$msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi')) $ProgressPreference = 'SilentlyContinue' Invoke-WebRequest "https://aka.ms/AzEflowMSI" -OutFile $msiPath
Zainstaluj IoT Edge dla systemu Linux w systemie Windows na urządzeniu.
Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn"
Można określić niestandardowe IoT Edge dla systemu Linux w instalacjach systemu Windows i katalogach VHDX, dodając
INSTALLDIR="<FULLY_QUALIFIED_PATH>"
parametry iVHDXDIR="<FULLY_QUALIFIED_PATH>"
do polecenia instalacji. Jeśli na przykład chcesz użyć folderu D:\EFLOW do instalacji i D:\EFLOW-VHDX dla dysku VHDX , możesz użyć następującego polecenia cmdlet programu PowerShell.Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn","INSTALLDIR=D:\EFLOW", "VHDXDIR=D:\EFLOW-VHDX"
Ustaw zasady wykonywania na urządzeniu docelowym na
AllSigned
wartość , jeśli jeszcze nie jest. Zobacz wymagania wstępne programu PowerShell dla poleceń, aby sprawdzić bieżące zasady wykonywania i ustawić zasady wykonywania naAllSigned
.Utwórz IoT Edge dla systemu Linux we wdrożeniu systemu Windows. Wdrożenie tworzy maszynę wirtualną z systemem Linux i instaluje środowisko uruchomieniowe IoT Edge.
Deploy-Eflow
Porada
Domyślnie
Deploy-Eflow
polecenie tworzy maszynę wirtualną z systemem Linux z 1 GB pamięci RAM, 1 rdzeniem procesorów wirtualnych i 16 GB miejsca na dysku. Jednak zasoby wymagane przez maszynę wirtualną są bardzo zależne od wdrożonych obciążeń. Jeśli maszyna wirtualna nie ma wystarczającej ilości pamięci do obsługi obciążeń, uruchomienie nie powiedzie się.Dostępne zasoby maszyny wirtualnej można dostosować przy użyciu
Deploy-Eflow
opcjonalnych parametrów polecenia.Na przykład poniższe polecenie tworzy maszynę wirtualną z 4 rdzeniami procesorów wirtualnych, 4 GB pamięci RAM (reprezentowanych w MB) i 20 GB miejsca na dysku:
Deploy-Eflow -cpuCount 4 -memoryInMB 4096 -vmDiskSize 20
Aby uzyskać informacje o wszystkich dostępnych opcjonalnych parametrach, zobacz Funkcje programu PowerShell dla IoT Edge dla systemu Linux w systemie Windows.
Ostrzeżenie
Domyślnie maszyna wirtualna EFLOW Linux nie ma konfiguracji DNS. Wdrożenia korzystające z protokołu DHCP spróbują uzyskać konfigurację DNS propagowaną przez serwer DHCP. Sprawdź konfigurację DNS, aby zapewnić łączność z Internetem. Aby uzyskać więcej informacji, zobacz AzEFLOW-DNS.
Procesor GPU można przypisać do wdrożenia, aby włączyć moduły z przyspieszonym procesorem GPU systemu Linux. Aby uzyskać dostęp do tych funkcji, należy zainstalować wymagania wstępne opisane w temacie Przyspieszanie procesora GPU dla usługi Azure IoT Edge dla systemu Linux w systemie Windows.
Aby użyć przekazywania procesora GPU, dodaj parametry gpuName, gpuPassthroughType i gpuCount do polecenia
Deploy-Eflow
. Aby uzyskać informacje o wszystkich dostępnych opcjonalnych parametrach, zobacz Funkcje programu PowerShell dla IoT Edge dla systemu Linux w systemie Windows.Ostrzeżenie
Włączenie przekazywania urządzeń sprzętowych może zwiększyć ryzyko bezpieczeństwa. Firma Microsoft zaleca sterownik ograniczania ryzyka urządzenia od dostawcy procesora GPU, jeśli ma to zastosowanie. Aby uzyskać więcej informacji, zobacz Wdrażanie urządzeń graficznych przy użyciu dyskretnego przypisania urządzenia.
Wprowadź wartość "Y", aby zaakceptować postanowienia licencyjne.
Wprowadź wartość "O" lub "R", aby przełączać opcjonalne dane diagnostyczne w zależności od preferencji.
Po zakończeniu wdrażania okno programu PowerShell zgłasza pomyślne wdrożenie.
Po pomyślnym wdrożeniu możesz przystąpić do aprowizowania urządzenia.
Aprowizuj urządzenie przy użyciu tożsamości chmury
Po zainstalowaniu środowiska uruchomieniowego na urządzeniu skonfiguruj urządzenie przy użyciu informacji używanych do nawiązania połączenia z usługą aprowizacji urządzeń i IoT Hub.
Przygotuj następujące informacje:
- Wartość zakresu identyfikatora usługi DPS
- Utworzony identyfikator rejestracji urządzenia
- Klucz podstawowy z rejestracji indywidualnej lub klucz pochodny dla urządzeń korzystających z rejestracji grupowej.
Aby aprowizować urządzenie IoT Edge, możesz użyć programu PowerShell lub Windows Admin Center.
W programie PowerShell uruchom następujące polecenie z wartościami zastępczymi zaktualizowanymi własnymi wartościami:
Provision-EflowVm -provisioningType DpsSymmetricKey -scopeId PASTE_YOUR_ID_SCOPE_HERE -registrationId PASTE_YOUR_REGISTRATION_ID_HERE -symmKey PASTE_YOUR_PRIMARY_KEY_OR_DERIVED_KEY_HERE
Weryfikowanie pomyślnej instalacji
Sprawdź, czy IoT Edge dla systemu Linux w systemie Windows została pomyślnie zainstalowana i skonfigurowana na urządzeniu IoT Edge.
Możesz sprawdzić, czy użyto rejestracji indywidualnej utworzonej w usłudze aprowizacji urządzeń. Przejdź do wystąpienia usługi aprowizacji urządzeń w Azure Portal. Otwórz szczegóły rejestracji dla utworzonej rejestracji indywidualnej. Zwróć uwagę, że stan rejestracji jest przypisany , a identyfikator urządzenia jest wyświetlany na liście.
Zaloguj się do IoT Edge dla systemu Linux na maszynie wirtualnej z systemem Windows przy użyciu następującego polecenia w sesji programu PowerShell:
Connect-EflowVm
Uwaga
Jedynym kontem dozwolonym przez protokół SSH na maszynie wirtualnej jest użytkownik, który go utworzył.
Po zalogowaniu można sprawdzić listę uruchomionych modułów IoT Edge przy użyciu następującego polecenia systemu Linux:
sudo iotedge list
Jeśli musisz rozwiązać problemy z usługą IoT Edge, użyj następujących poleceń systemu Linux.
Pobierz dzienniki usługi.
sudo journalctl -u iotedge
Użyj narzędzia,
check
aby zweryfikować stan konfiguracji i połączenia urządzenia.sudo iotedge check
Uwaga
Na nowo zainicjowanym urządzeniu 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 zainicjowanym urządzeniu, ponieważ moduł IoT Edge Hub nie jest uruchomiony. Aby rozwiązać ten problem, w IoT Hub ustaw moduły dla urządzenia i utwórz wdrożenie. Tworzenie wdrożenia dla urządzenia uruchamia moduły na urządzeniu, w tym moduł IoT Edge Hub.
Podczas tworzenia nowego urządzenia IoT Edge zostanie wyświetlony kod 417 -- The device's deployment configuration is not set
stanu w Azure Portal. Ten stan jest normalny i oznacza, że urządzenie jest gotowe do otrzymania wdrożenia modułu.
Odinstalowywanie IoT Edge dla systemu Linux w systemie Windows
Jeśli chcesz usunąć usługę Azure IoT Edge dla systemu Linux w systemie Windows z urządzenia, użyj następujących poleceń.
- Otwórz ustawienia w systemie Windows
- Wybierz pozycję Dodaj lub usuń programy
- Wybieranie aplikacji LTS platformy Azure IoT Edge
- Wybierz pozycję Odinstaluj
Następne kroki
Proces rejestracji usługi aprowizacji urządzeń umożliwia ustawienie identyfikatora urządzenia i tagów bliźniaczej reprezentacji urządzenia w tym samym czasie, co aprowizowanie nowego urządzenia. Możesz użyć tych wartości do określania docelowych poszczególnych urządzeń lub grup urządzeń przy użyciu automatycznego zarządzania urządzeniami. Dowiedz się, jak wdrażać i monitorować moduły IoT Edge na dużą skalę przy użyciu Azure Portal lub interfejsu wiersza polecenia platformy Azure.
Możesz również wykonać następujące czynności:
- Kontynuuj wdrażanie modułów IoT Edge, aby dowiedzieć się, jak wdrażać moduły na urządzeniu.
- Dowiedz się, jak zarządzać certyfikatami w IoT Edge dla systemu Linux na maszynie wirtualnej z systemem Windows i transferować pliki z systemu operacyjnego hosta do maszyny wirtualnej z systemem Linux.
- Dowiedz się, jak skonfigurować urządzenia IoT Edge do komunikowania się za pośrednictwem serwera proxy.