Udostępnij za pośrednictwem


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

Dotyczy ikony:yes 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:

  1. Utwórz rejestrację indywidualną dla jednego urządzenia lub rejestrację grupową dla zestawu urządzeń.
  2. 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

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

  1. Ustaw zasady wykonywania na urządzeniu docelowym na AllSignedwartość . 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 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.

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

    2. Podaj unikatowy identyfikator rejestracji dla urządzenia.

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

    4. Wybierz pozycję Prawda, aby zadeklarować, że rejestracja dotyczy urządzenia IoT Edge.

    5. 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": {}
         }
      }
      
    6. Wybierz pozycję Zapisz.

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

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

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

  6. Wprowadź wartość "O" lub "R", aby przełączać opcjonalne dane diagnostyczne w zależności od preferencji.

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

  1. 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ł.

  2. Po zalogowaniu można sprawdzić listę uruchomionych modułów 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. 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ń.

  1. Otwórz ustawienia w systemie Windows
  2. Wybierz pozycję Dodaj lub usuń programy
  3. Wybieranie aplikacji LTS platformy 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ź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: