Tworzenie i aprowizowanie usługi IoT Edge dla systemu Linux na urządzeniu z systemem Windows przy użyciu certyfikatów X.509
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 usługi IoT Edge dla systemu Linux na urządzeniu z systemem Windows.
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 certyfikatów X.509 jako metody uwierzytelniania. Jeśli chcesz użyć kluczy symetrycznych, zobacz Tworzenie i aprowizowanie usługi IoT Edge dla systemu Linux na urządzeniu z systemem Windows przy użyciu kluczy symetrycznych.
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 usługi IoT Edge dla systemu Linux w systemie Windows. 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 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.
Generowanie certyfikatów tożsamości urządzenia
Ręczna aprowizacja przy użyciu certyfikatów X.509 wymaga usługi IoT Edge w wersji 1.0.10 lub nowszej.
Podczas aprowizowania urządzenia usługi IoT Edge przy użyciu certyfikatów X.509 należy użyć certyfikatu tożsamości urządzenia. Ten certyfikat jest używany tylko do aprowizowania urządzenia usługi IoT Edge i uwierzytelniania urządzenia za pomocą usługi Azure IoT Hub. Jest to certyfikat liścia, który nie podpisuje innych certyfikatów. Certyfikat tożsamości urządzenia jest oddzielony od certyfikatów urzędu certyfikacji , które urządzenie usługi IoT Edge przedstawia modułom lub urządzeniom podrzędnym na potrzeby weryfikacji.
W przypadku uwierzytelniania certyfikatu X.509 informacje o uwierzytelnianiu każdego urządzenia są udostępniane w postaci odcisków palca pobranych z certyfikatów tożsamości urządzenia. Te odciski palca są przekazywane do usługi IoT Hub w momencie rejestracji urządzenia, aby usługa mogła rozpoznać urządzenie podczas nawiązywania połączenia.
Aby uzyskać więcej informacji na temat sposobu użycia certyfikatów urzędu certyfikacji na urządzeniach usługi IoT Edge, zobacz Omówienie sposobu korzystania z certyfikatów w usłudze Azure IoT Edge.
Do aprowizacji ręcznej w środowisku X.509 potrzebne są następujące pliki:
Dwa certyfikaty tożsamości urządzenia z ich zgodnymi certyfikatami klucza prywatnego w formatach .cer lub pem.
Do środowiska uruchomieniowego usługi IoT Edge jest udostępniany jeden zestaw plików certyfikatów/kluczy. Podczas tworzenia certyfikatów tożsamości urządzenia ustaw nazwę pospolitą certyfikatu (CN) przy użyciu identyfikatora urządzenia, który ma mieć urządzenie w centrum IoT Hub.
Odciski palca pobrane z obu certyfikatów tożsamości urządzenia.
Wartości odcisku palca to 40-szesnastkowe znaki skrótów SHA-1 lub 64-szesnastkowe znaki skrótów SHA-256. Oba odciski palca są udostępniane usłudze IoT Hub w momencie rejestracji urządzenia.
Jeśli nie masz dostępnych certyfikatów, możesz utworzyć certyfikaty demonstracyjne, aby przetestować funkcje urządzeń usługi IoT Edge. Postępuj zgodnie z instrukcjami w tym artykule, aby skonfigurować skrypty tworzenia certyfikatów, utworzyć certyfikat głównego urzędu certyfikacji, a następnie utworzyć dwa certyfikaty tożsamości urządzeń usługi IoT Edge.
Jednym ze sposobów pobrania odcisku palca z certyfikatu jest następujące polecenie openssl:
openssl x509 -in <certificate filename>.pem -text -fingerprint
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ę X.509 Self-Signed jako typ uwierzytelniania.
- Podaj odciski palca certyfikatu tożsamości podstawowej i pomocniczej. Wartości odcisku palca to 40-szesnastkowe znaki skrótów SHA-1 lub 64-szesnastkowe znaki skrótów SHA-256.
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 certyfikatu X.509 wymagają nazwy centrum IoT Hub, nazwy urządzenia i plików certyfikatów w celu 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.
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.
Aprowizuj urządzenie przy użyciu tożsamości w chmurze
Wszystko jest gotowe do skonfigurowania urządzenia przy użyciu informacji o tożsamości w chmurze i uwierzytelniania.
Aby aprowizować urządzenie przy użyciu certyfikatów X.509, musisz mieć nazwę centrum IoT, identyfikator urządzenia oraz ścieżki bezwzględne do certyfikatu tożsamości i klucza prywatnego na maszynie hosta z systemem Windows.
Aby aprowizować urządzenia, możesz użyć centrum administracyjnego systemu Windows lub sesji programu PowerShell z podwyższonym poziomem uprawnień.
Certyfikat tożsamości urządzenia i jego pasujący klucz prywatny są gotowe na urządzeniu docelowym. Znajomość ścieżki bezwzględnej do obu plików.
Uruchom następujące polecenie w sesji programu PowerShell z podwyższonym poziomem uprawnień na urządzeniu docelowym. Zastąp tekst zastępczy własnymi wartościami.
Provision-EflowVm -provisioningType ManualX509 -iotHubHostname "HUB_HOSTNAME_HERE" -deviceId "DEVICE_ID_HERE" -identityCertPath "ABSOLUTE_PATH_TO_IDENTITY_CERT_HERE" -identityPrivKeyPath "ABSOLUTE_PATH_TO_PRIVATE_KEY_HERE"
Aby uzyskać więcej informacji na temat Provision-EflowVM
polecenia, zobacz Funkcje programu PowerShell dla usługi IoT Edge dla systemu Linux w systemie Windows.
Weryfikowanie pomyślnej konfiguracji
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.
Zaloguj się do usługi 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 się 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.
Pobierz dzienniki usługi.
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.
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.
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
- Kontynuuj wdrażanie modułów usługi IoT Edge, aby dowiedzieć się, jak wdrażać moduły na urządzeniu.
- Dowiedz się, jak zarządzać certyfikatami w usłudze IoT Edge dla systemu Linux na maszynie wirtualnej z systemem operacyjnym Windows i transferować pliki z systemu operacyjnego hosta do maszyny wirtualnej z systemem Linux.
- Dowiedz się, jak skonfigurować urządzenia usługi IoT Edge do komunikacji za pośrednictwem serwera proxy.