Udostępnij przez


Tworzenie i aprowizowanie usługi IoT Edge dla systemu Linux na urządzeniach z systemem Windows na dużą skalę przy użyciu kluczy symetrycznych

Dotyczy:ikona potwierdzenia 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 Update IoT Edge.

Ten artykuł zawiera kompleksowe instrukcje dotyczące automatycznego aprowizowania co najmniej jednej usługi IoT Edge dla systemu Linux na urządzeniach z systemem Windows przy użyciu kluczy symetrycznych. Urządzenia Azure IoT Edge można automatycznie aprowizować za pomocą usługi Azure IoT Hub device provisioning service (DPS). Jeśli nie znasz procesu automatycznego provisioningu, przed kontynuowaniem zapoznaj się z omówieniem provisioningu.

Zadania są następujące:

  1. Utwórz rejestrację indywidualną dla jednego urządzenia lub rejestracji grupowej dla zestawu urządzeń.
  2. Wdróż maszynę wirtualną z systemem Linux przy użyciu zainstalowanego środowiska uruchomieniowego usługi IoT Edge i połącz ją z usługą IoT Hub.

Uwierzytelnianie 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 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
  • Instancja usługi aprowizacji urządzeń IoT Hub na platformie Azure, połączona z Twoim IoT Hub.

Wymagania dotyczące urządzenia

Urządzenie z systemem Windows z następującymi minimalnymi wymaganiami:

  • Wymagania systemowe

    • Windows 10/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

  • 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.

Wskazówka

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 GPU i może być konieczne uzyskanie dostępu do kompilacji programu Windows Insider. 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 IoT Edge można użyć albo PowerShell, albo 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:

  1. 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 polityka wykonywania local machine nie jest AllSigned, można ustawić politykę 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.

Utwórz rejestrację DPS

Utwórz rejestrację, aby aprowizować co najmniej jedno urządzenie za pośrednictwem usługi DPS.

Jeśli chcesz skonfigurować pojedyncze urządzenie IoT Edge, utwórz indywidualną rejestrację. Jeśli potrzebujesz aprowizacji wielu urządzeń, wykonaj kroki tworzenia grupowej rejestracji w usłudze DPS.

Podczas tworzenia rejestracji w usłudze DPS możesz zadeklarować początkowy stan bliźniaka urządzenia. W modelu bliźniaczym urządzenia można ustawić tagi, aby grupować urządzenia według dowolnej metryki potrzebnej w rozwiązaniu, takiej jak region, środowisko, lokalizacja czy typ urządzenia. Te tagi służą do tworzenia wdrożeń automatycznych.

Aby uzyskać więcej informacji na temat rejestracji w usłudze dostarczania urządzeń, zobacz Jak zarządzać rejestracjami urządzeń.

Utwórz indywidualną rejestrację DPS

Wskazówka

Kroki opisane w tym artykule dotyczą witryny Azure Portal, ale można również tworzyć rejestracje indywidualne przy użyciu interfejsu wiersza polecenia platformy Azure. Aby uzyskać więcej informacji, zobacz az iot dps enrollment. W ramach polecenia CLI użyj flagi edge-enabled, aby określić, że rejestracja dotyczy urządzenia IoT Edge.

  1. W witrynie Azure portal przejdź do wystąpienia usługi aprowizacji urządzeń IoT Hub.

  2. W obszarze Ustawienia wybierz pozycję Zarządzaj rejestracjami.

  3. Wybierz pozycję Dodaj rejestrację indywidualną, a następnie wykonaj następujące kroki, aby skonfigurować rejestrację:

    1. Wybierz Klucz symetryczny w obszarze Mechanizm.

    2. Podaj unikatowy identyfikator rejestracji dla urządzenia.

    3. Opcjonalnie podaj identyfikator urządzenia IoT Hub dla swojego urządzenia. Identyfikatory urządzeń umożliwiają określanie celu poszczególnych urządzeń na potrzeby wdrożenia modułu. Jeśli nie podasz identyfikatora urządzenia, zostanie użyty identyfikator rejestracji.

    4. Wybierz pozycję True , aby zadeklarować, że rejestracja dotyczy urządzenia usługi IoT Edge.

    5. Opcjonalnie 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. Przykład:

      {
         "tags": {
            "environment": "test"
         },
         "properties": {
            "desired": {}
         }
      }
      
    6. Wybierz Zapisz.

  4. Skopiuj wartość klucza podstawowego indywidualnej rejestracji do użycia podczas instalowania środowiska uruchomieniowego IoT Edge.

Teraz, gdy rejestracja istnieje dla tego urządzenia, środowisko uruchomieniowe usługi IoT Edge może automatycznie aprowizować urządzenie podczas instalacji.

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 / Notatka

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.

  1. 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
    
  2. 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"
    

    Można określić niestandardowe katalogi instalacji IoT Edge dla systemu Linux w systemie Windows oraz katalogi VHDX, dodając parametry INSTALLDIR="<FULLY_QUALIFIED_PATH>" i VHDXDIR="<FULLY_QUALIFIED_PATH>" do polecenia instalacyjnego. 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"
    
  3. Ustaw zasady wykonywania na urządzeniu docelowym na AllSigned, jeśli jeszcze nie są. Zobacz wymagania programu PowerShell dotyczące poleceń, które pozwolą sprawdzić bieżące zasady wykonywania i ustawić je na AllSigned.

  4. 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
    

    Wskazówka

    Domyślnie polecenie Deploy-Eflow tworzy maszynę wirtualną z systemem Linux z 1 GB pamięci RAM, 1 rdzeniem vCPU 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 masz połączenie z Internetem. Aby uzyskać więcej informacji, zobacz AzEFLOW-DNS.

    Można przypisać GPU do wdrożenia, aby umożliwić działanie modułów Linux z przyspieszeniem GPU. 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ć passthrough GPU, dodaj parametr 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 dla 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.

  5. Wprowadź wartość "Y", aby zaakceptować postanowienia licencyjne.

  6. W zależności od preferencji wprowadź wartość "O" lub "R", aby włączyć lub wyłączyć opcjonalne dane diagnostyczne.

  7. Po zakończeniu wdrażania okno programu PowerShell zgłasza wdrożenie zakończone pomyślnie.

    Pomyślne wdrożenie powie „Wdrożenie zakończone pomyślnie” na końcu komunikatów, PNG.

    Po pomyślnym wdrożeniu możesz przystąpić do aprowizowania urządzenia.

Skonfiguruj urządzenie przy użyciu jego tożsamości w chmurze

Po zainstalowaniu środowiska uruchomieniowego na urządzeniu skonfiguruj urządzenie przy użyciu informacji używanych do nawiązywania połączenia z usługą aprowizacji urządzeń i usługą IoT Hub.

Przygotuj następujące informacje:

  • Wartość Zakres identyfikatora usługi DPS
  • Utworzony identyfikator rejestracji urządzenia
  • Klucz podstawowy z rejestracji indywidualnej lub klucz pochodny dla urządzeń korzystających z rejestracji grupy.

Aby aprowizować urządzenie usługi IoT Edge, możesz użyć programu PowerShell lub Centrum administracyjnego systemu Windows.

W przypadku programu PowerShell uruchom następujące polecenie, zastępując wartości zastępcze swoimi własnymi:

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 usługa IoT Edge dla systemu Linux w systemie Windows została pomyślnie zainstalowana i skonfigurowana na urządzeniu usługi IoT Edge.

Możesz zweryfikować, czy utworzona przez Ciebie rejestracja indywidualna została użyta w usłudze zarządzania urządzeniami. Przejdź do instancji usługi konfiguracji urządzeń w portalu Azure. Otwórz szczegóły rejestracji dla rejestracji indywidualnej, którą utworzyłeś. Zwróć uwagę, że stan rejestracji to przypisany i że identyfikator urządzenia znajduje się na liście.

  1. 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 / Notatka

    Jedynym kontem, które może korzystać z SSH na maszynie wirtualnej, jest użytkownik, który ją utworzył.

  2. 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
    
  3. Jeśli musisz rozwiązać problemy z usługą IoT Edge, użyj następujących poleceń systemu Linux.

    1. Pobierz dzienniki usługi.

      sudo journalctl -u iotedge
      
    2. check Użyj narzędzia , aby zweryfikować konfigurację i stan połączenia urządzenia.

      sudo iotedge check
      

    Uwaga / Notatka

    Na nowo aprowizowanych urządzeniach może zostać wyświetlony błąd związany z usługą IoT Edge Hub:

    × gotowość produkcyjna: katalog magazynu Edge Hub jest zachowywany 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 IoT Edge Hub.

Podczas tworzenia nowego urządzenia usługi IoT Edge zostanie wyświetlony kod stanu 417 -- The device's deployment configuration is not set w portalu Azure. 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ń.

  1. Otwórz ustawienia w systemie Windows
  2. Wybierz pozycję Dodaj lub usuń programy
  3. Wybierz aplikację Azure IoT Edge LTS
  4. Wybierz pozycję Odinstaluj

Dalsze kroki

Proces rejestracji w usłudze wdrażania urządzeń umożliwia ustawienie identyfikatora urządzenia i właściwości bliźniaczych urządzenia jednocześnie z jego wdrożeniem. 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.

Możesz również wykonać następujące czynności: