Tworzenie i aprowizowanie usługi IoT Edge dla systemu Linux na urządzeniu z systemem Windows na dużą skalę przy użyciu modułu TPM
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 instrukcje dotyczące automatycznego aprowizowania usługi Azure IoT Edge dla systemu Linux na urządzeniu z systemem Windows przy użyciu modułu TPM (Trusted Platform Module). Urządzenia usługi Azure IoT Edge można aprowizować automatycznie za pomocą usługi aprowizacji urządzeń usługi Azure IoT Hub. Jeśli nie znasz procesu automatycznego aprowizowania, przed kontynuowaniem zapoznaj się z omówieniem aprowizacji.
W tym artykule opisano dwie metodologie. Wybierz swoją preferencję na podstawie architektury rozwiązania:
- Automatyczne aprowizowanie systemu Linux na urządzeniu z systemem Windows przy użyciu fizycznego sprzętu TPM.
- Automatyczne aprowizowanie systemu Linux na urządzeniu z systemem Windows przy użyciu symulowanego modułu TPM. Zalecamy tę metodologię tylko jako scenariusz testowania. Symulowany moduł TPM nie oferuje tych samych zabezpieczeń co fizyczny moduł TPM.
Zadania są następujące:
- Zainstaluj usługę IoT Edge dla systemu Linux w systemie Windows.
- Pobierz informacje o module TPM z urządzenia.
- Utwórz rejestrację indywidualną dla urządzenia.
- Aprowizuj urządzenie przy użyciu informacji o module TPM.
Wymagania wstępne
Zasoby w chmurze
- Aktywne centrum IoT
- Wystąpienie usługi aprowizacji urządzeń usługi IoT Hub na platformie Azure połączone z centrum IoT Hub
- Jeśli nie masz wystąpienia usługi device provisioning, możesz postępować zgodnie z instrukcjami w przewodniku Szybki start Tworzenie nowej usługi aprowizacji urządzeń w usłudze IoT Hub i Łączenie centrum IoT i usługi aprowizacji urządzeń w usłudze IoT Hub.
- 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 usługi IoT Edge.
Wymagania dotyczące urządzenia
Urządzenie z systemem Windows z następującymi minimalnymi wymaganiami:
Wymagania systemowe
- Windows 101/11 (Pro, Enterprise, IoT Enterprise)
- Windows Server 20191/2022
1 Windows 10 i Windows Server 2019 minimalna kompilacja 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 systemie Windows 10 włącz funkcję Hyper-V. Aby uzyskać więcej informacji, zobacz Instalowanie funkcji Hyper-V w systemie 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 Wirtualizacja zagnieżdżona dla usługi 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 platformy 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.
Napiwek
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 rozważyć 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 niejawnego programu testów systemu Windows. Aby określić wymagania konfiguracyjne i spełnić te wymagania wstępne, zobacz Przyspieszanie procesora GPU dla usługi 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, konieczne będzie ponowne uruchomienie procesu instalacji.
Narzędzia deweloperskie
Do zarządzania urządzeniami usługi IoT Edge można użyć programu PowerShell lub Centrum administracyjnego systemu Windows. 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 wartość
AllSigned
. 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 programie Windows PowerShell, zobacz dokumentację funkcji programu PowerShell.
Uwaga
Moduł TPM 2.0 jest wymagany w przypadku korzystania z zaświadczania modułu TPM z usługą aprowizacji urządzeń.
W przypadku korzystania z modułu TPM można tworzyć tylko rejestracje indywidualne, a nie grupowe, a nie rejestracje usługi aprowizacji urządzeń.
Instalowanie usługi IoT Edge
Wdróż usługę Azure IoT Edge dla systemu Linux w systemie Windows na urządzeniu docelowym.
Zainstaluj usługę IoT Edge dla systemu Linux w systemie Windows na urządzeniu docelowym.
Uwaga
W poniższym procesie programu PowerShell opisano sposób wdrażania usługi IoT Edge dla systemu Linux na urządzeniu lokalnym. Aby wdrożyć 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 poniższych poleceń, aby pobrać usługę 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 usługę 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"
Niestandardową usługę IoT Edge dla systemu Linux można określić w katalogach instalacji systemu Windows i 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 usługę IoT Edge dla systemu Linux we wdrożeniu systemu Windows. Wdrożenie tworzy maszynę wirtualną z systemem Linux i instaluje środowisko uruchomieniowe usługi IoT Edge.
Deploy-Eflow
Napiwek
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 (reprezentowanymi w MB) i 20 GB miejsca na dysku:
Deploy-Eflow -cpuCount 4 -memoryInMB 4096 -vmDiskSize 20
Aby uzyskać informacje o wszystkich dostępnych parametrach opcjonalnych, zobacz Funkcje programu PowerShell dla usługi IoT Edge dla systemu Linux w systemie Windows.
Ostrzeżenie
Domyślnie maszyna wirtualna EFLOW z systemem 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 upewnić się, że łączność z Internetem. Aby uzyskać więcej informacji, zobacz AzEFLOW-DNS.
Procesor GPU można przypisać do wdrożenia, aby umożliwić moduły z przyspieszonym procesorem GPU dla systemu Linux. Aby uzyskać dostęp do tych funkcji, należy zainstalować wymagania wstępne opisane w artykule 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 parametrach opcjonalnych, zobacz Funkcje programu PowerShell dla usługi 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.
W zależności od preferencji wprowadź wartość "O" lub "R", aby włączyć lub wyłączyć opcjonalne dane diagnostyczne.
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.
Aby przygotować urządzenie do aprowizacji przy użyciu modułu TPM, należy wykonać kilka kroków. Pozostaw wdrożenie otwarte podczas przygotowywania urządzenia. Wrócisz do wdrożenia w dalszej części artykułu.
Włączanie przekazywania modułu TPM
Usługa IoT Edge dla systemu Linux na maszynie wirtualnej z systemem Windows ma funkcję TPM, którą można włączyć lub wyłączyć. Domyślnie jest ona wyłączona. Po włączeniu tej funkcji maszyna wirtualna może uzyskać dostęp do modułu TPM maszyny hosta.
Otwórz program PowerShell w sesji z podwyższonym poziomem uprawnień.
Jeśli jeszcze tego nie zrobiono, ustaw zasady wykonywania na urządzeniu
AllSigned
tak, aby można było uruchomić usługę IoT Edge dla systemu Linux w funkcjach programu Windows PowerShell.Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
Włącz funkcję modułu TPM.
Set-EflowVmFeature -feature 'DpsTpm' -enable
Pobieranie informacji o module TPM z urządzenia
Aby aprowizować urządzenie, potrzebujesz klucza poręczenia dla mikroukładu modułu TPM i identyfikatora rejestracji dla urządzenia. Te informacje są podane w wystąpieniu usługi aprowizacji urządzeń, aby usługa mogła rozpoznać urządzenie podczas próby nawiązania połączenia.
Klucz poręczenia jest unikatowy dla każdego mikroukładu modułu TPM. Jest on uzyskiwany od producenta mikroukładu TPM skojarzonego z nim. Możesz uzyskać unikatowy identyfikator rejestracji dla urządzenia TPM, na przykład tworząc skrót SHA-256 klucza poręczenia.
Usługa IoT Edge dla systemu Linux w systemie Windows udostępnia skrypt programu PowerShell, który ułatwia pobieranie tych informacji z modułu TPM. Aby użyć skryptu, wykonaj następujące kroki na urządzeniu:
Otwórz program PowerShell w sesji z podwyższonym poziomem uprawnień.
Uruchom polecenie .
Get-EflowVmTpmProvisioningInfo | Format-List
Tworzenie rejestracji usługi aprowizacji urządzeń
Użyj informacji o aprowizacji modułu TPM, aby utworzyć rejestrację indywidualną w usłudze aprowizacji urządzeń.
Podczas tworzenia rejestracji w usłudze aprowizacji urządzeń możesz zadeklarować stan bliźniaczej reprezentacji urządzenia początkowego. W bliźniaczej reprezentacji urządzenia można ustawić tagi na grupowanie urządzeń według dowolnej metryki używanej w rozwiązaniu, takiej jak region, środowisko, lokalizacja lub typ urządzenia. Te tagi służą do tworzenia wdrożeń automatycznych.
Napiwek
Kroki opisane w tym artykule dotyczą witryny 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 dotyczy urządzenia usługi IoT Edge.
W witrynie Azure Portal przejdź do wystąpienia usługi IoT Hub device provisioning.
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ę TPM.
Podaj klucz poręczenia i identyfikator rejestracji skopiowany z maszyny wirtualnej lub urządzenia fizycznego.
Podaj identyfikator urządzenia, jeśli chcesz. Jeśli nie podasz identyfikatora urządzenia, zostanie użyty identyfikator rejestracji.
Wybierz pozycję True , aby zadeklarować, że maszyna wirtualna lub urządzenie fizyczne jest urządzeniem usługi IoT Edge.
Wybierz połączone centrum IoT Hub, z którym chcesz połączyć urządzenie, lub wybierz pozycję Połącz z nową usługą IoT Hub. Można wybrać wiele centrów, a urządzenie zostanie przypisane do jednego z nich zgodnie z wybranymi zasadami przypisania.
Jeśli chcesz, dodaj wartość tagu do stanu początkowej bliźniaczej reprezentacji urządzenia. Tagów można używać do grup docelowych urządzeń na potrzeby wdrażania modułu. Aby uzyskać więcej informacji, zobacz Wdrażanie modułów usługi IoT Edge na dużą skalę.
Wybierz pozycję Zapisz.
Teraz, gdy rejestracja istnieje dla tego urządzenia, środowisko uruchomieniowe usługi IoT Edge może automatycznie aprowizować urządzenie podczas instalacji.
Aprowizuj urządzenie przy użyciu tożsamości w chmurze
Otwórz sesję programu PowerShell z podwyższonym poziomem uprawnień na urządzeniu z systemem Windows.
Aprowizuj urządzenie przy użyciu identyfikatora zakresu zebranego z wystąpienia usługi aprowizacji urządzeń.
Provision-EflowVM -provisioningType "DpsTpm" -scopeId "SCOPE_ID_HERE"
Jeśli urządzenie zostało zarejestrowane przy użyciu niestandardowego identyfikatora rejestracji, należy określić ten identyfikator rejestracji, a także podczas aprowizacji:
Provision-EflowVM -provisioningType "DpsTpm" -scopeId "SCOPE_ID_HERE" -registrationId "REGISTRATION_ID_HERE"
Weryfikowanie pomyślnej instalacji
Sprawdź, czy usługa IoT Edge dla systemu Linux w systemie Windows została pomyślnie zainstalowana i skonfigurowana na urządzeniu usługi IoT Edge.
Jeśli środowisko uruchomieniowe zostało uruchomione pomyślnie, możesz przejść do centrum IoT i rozpocząć wdrażanie modułów usługi IoT Edge na urządzeniu.
Możesz sprawdzić, czy została użyta rejestracja indywidualna utworzona w usłudze aprowizacji urządzeń. Przejdź do wystąpienia usługi aprowizacji urządzeń w witrynie Azure Portal. Otwórz szczegóły rejestracji dla utworzonej rejestracji indywidualnej. Zwróć uwagę, że stan rejestracji jest przypisany , a identyfikator urządzenia znajduje się na liście.
Użyj następujących poleceń na urządzeniu, aby sprawdzić, czy usługa IoT Edge została zainstalowana i uruchomiona pomyślnie.
Nawiąż połączenie z usługą 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 do SSH na maszynie wirtualnej jest użytkownik, który go utworzył.
Po zalogowaniu możesz sprawdzić listę uruchomionych modułów usługi 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.
Jeśli potrzebujesz rozwiązać problem z usługą, pobierz jej dzienniki.
sudo journalctl -u iotedge
check
Użyj narzędzia , aby zweryfikować konfigurację i stan połączenia urządzenia.sudo iotedge check
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.
Odinstalowywanie usługi IoT Edge dla systemu Linux w systemie Windows
Jeśli chcesz usunąć instalację usługi Azure IoT Edge dla systemu Linux z urządzenia, użyj następujących poleceń.
- Otwórz ustawienia w systemie Windows
- Wybierz pozycję Dodaj lub usuń programy
- Wybieranie aplikacji LTS usługi 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źniaczych reprezentacji urządzenia w tym samym czasie co aprowizowanie nowego urządzenia. Tych wartości można użyć do określania wartości docelowych dla 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 usługi IoT Edge na dużą skalę przy użyciu witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure.