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:Znacznik wyboru usługi IoT Edge 1.4 IoT Edge 1.4

Ważne

Obsługiwane są wersje usługi IoT Edge 1.5 LTS i IoT Edge 1.4. Usługa IoT Edge 1.4 LTS kończy się 12 listopada 2024 r. Jeśli korzystasz z wcześniejszej wersji, zobacz aktualizację Azure IoT Edge.

W tym artykule pokazano, jak automatycznie aprowizacja co najmniej jednej usługi IoT Edge dla systemu Linux na urządzeniach z systemem Windows przy użyciu kluczy symetrycznych. Urządzenia usługi Azure IoT Edge można aprowizować automatycznie za pomocą usługi Azure IoT Hub device provisioning (DPS). Jeśli nie znasz procesu automatycznego aprowizowania, przed kontynuowaniem zapoznaj się z omówieniem aprowizacji.

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.

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 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ń 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

  • 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

Przygotuj 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 zasady wykonywania elementu local machine nie AllSignedsą , 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.

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ć pojedyncze urządzenie usługi 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, aby grupować urządzenia 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 device provisioning, zobacz Jak zarządzać rejestracjami urządzeń.

Tworzenie rejestracji indywidualnej usługi DPS

Napiwek

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

  1. W witrynie Azure Portal przejdź do wystąpienia usługi IoT Hub device provisioning.

  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. W obszarze Mechanizm wybierz pozycję Klucz symetryczny.

    2. Podaj unikatowy identyfikator rejestracji dla urządzenia.

    3. Opcjonalnie podaj identyfikator urządzenia usługi IoT Hub dla 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. Na przykład:

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

  4. Skopiuj wartość klucza podstawowego indywidualnej rejestracji do użycia podczas instalowania środowiska uruchomieniowego usługi 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.

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.

  1. W sesji programu PowerShell z podwyższonym poziomem uprawnień uruchom jedną z następujących poleceń w zależności od architektury urządzenia docelowego, aby pobrać usługę IoT Edge dla systemu Linux w systemie Windows.

    • X64/AMD64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_X64" -OutFile $msiPath
      
    • ARM64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_ARM64" -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"
    

    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 i VHDXDIR="<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"
    
  3. 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 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
    

    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. Jest to wymagane do wdrożenia rozwiązania EFLOW na urządzeniu z minimalnymi wymaganiami sprzętowymi.

    Na przykład poniższe polecenie tworzy maszynę wirtualną z 1 rdzeniem procesorów wirtualnych, 1 GB pamięci RAM (reprezentowanym w MB) i 2 GB miejsca na dysku:

    Deploy-Eflow -cpuCount 1 -memoryInMB 1024 -vmDataSize 2
    

    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.

  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 pomyślne wdrożenie.

    Pomyślne wdrożenie powiedzie

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

Aprowizuj urządzenie przy użyciu 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.

Uruchom następujące polecenie w sesji programu PowerShell z podwyższonym poziomem uprawnień 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 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 sprawdzić, czy użyto indywidualnej rejestracji utworzonej 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.

  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

    Jedynym kontem dozwolonym przez protokół SSH na maszynie wirtualnej jest użytkownik, który go 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 iotedge system logs
      
    2. 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ń.

  1. Otwieranie Ustawienia w systemie Windows
  2. Wybierz pozycję Dodaj lub usuń programy
  3. Wybieranie aplikacji usługi Azure IoT Edge
  4. 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.

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