TPM kullanarak büyük ölçekte Windows cihazında Linux için IoT Edge oluşturma ve sağlama

Şunlar için geçerlidir: IoT Edge 1.4 onay işareti IoT Edge 1.4

Önemli

Azure IoT Edge 1.5 LTS ve IoT Edge 1.4 desteklenen sürümlerdir. IoT Edge 1.4 LTS, 12 Kasım 2024'te hizmet sonuna ulaşıyor. Önceki bir sürümü kullanıyorsanız, IoT Edge’i güncelleştirme makalesine bakın.

Bu makalede, Güvenilen Platform Modülü (TPM) kullanarak Windows cihazında Linux için Azure IoT Edge'i otomatik sağlama yönergeleri sağlanır. Azure IoT Edge cihazlarını Azure IoT Hub cihaz sağlama hizmetiyle otomatik olarak sağlayabilirsiniz. Otomatik sağlama işlemini bilmiyorsanız devam etmeden önce sağlama genel bakışını gözden geçirin.

Bu makalede iki yöntem özetlenmiştir. Çözümünüzün mimarisine göre tercihinizi seçin:

  • Windows cihazında fiziksel TPM donanımıyla Linux'un otomatik sağlamasını yapın.
  • Sanal TPM kullanarak Windows cihazında Linux'un otomatik sağlamasını yapın. Bu metodolojiyi yalnızca bir test senaryosu olarak öneririz. Sanal TPM, fiziksel TPM ile aynı güvenliği sunmaz.

Görevler aşağıdaki gibidir:

  • Windows'da Linux için IoT Edge'i yükleyin.
  • Cihazınızdan TPM bilgilerini alın.
  • Cihaz için tek bir kayıt oluşturun.
  • Cihazınızı TPM bilgileriyle sağlayın.

Önkoşullar

Bulut kaynakları

  • Etkin bir IoT hub'ı
  • Azure'da IoT Hub cihaz sağlama hizmetinin IoT hub'ınıza bağlı bir örneği
    • Cihaz sağlama hizmeti örneğiniz yoksa, IoT Hub cihaz sağlama hizmeti hızlı başlangıcının Yeni IoT Hub cihazı sağlama hizmeti oluşturma ve IoT hub'ı ile cihaz sağlama hizmetinizi bağlama bölümlerindeki yönergeleri izleyebilirsiniz.
    • Cihaz sağlama hizmetini çalıştırdıktan sonra, genel bakış sayfasından Kimlik Kapsamı değerini kopyalayın. IoT Edge çalışma zamanını yapılandırırken bu değeri kullanırsınız.

Cihaz gereksinimleri

Aşağıdaki minimum gereksinimlere sahip bir Windows cihazı:

  • Sistem Gereksinimleri

    • Windows 101/11 (Pro, Enterprise, IoT Enterprise)
    • Windows Server 20191/2022
      1 Windows 10 ve Windows Server 2019 en düşük derleme 17763 ve tüm geçerli toplu güncelleştirmeler yüklü.
  • Donanım gereksinimleri

    • Minimum Boş Bellek: 1 GB
    • En Az Boş Disk Alanı: 10 GB
  • Sanallaştırma desteği

    • Windows 10'da Hyper-V'yi etkinleştirin. Daha fazla bilgi için bkz . Windows 10'da Hyper-V yükleme.
    • Windows Server'da Hyper-V rolünü yükleyin ve varsayılan bir ağ anahtarı oluşturun. Daha fazla bilgi için bkz . Windows üzerinde Linux için Azure IoT Edge iç içe sanallaştırma.
    • Bir sanal makinede iç içe sanallaştırmayı yapılandırın. Daha fazla bilgi için bkz . iç içe sanallaştırma.
  • Ağ desteği

    • Windows Server varsayılan bir anahtarla birlikte gelmez. EFLOW'u bir Windows Server cihazına dağıtabilmeniz için önce bir sanal anahtar oluşturmanız gerekir. Daha fazla bilgi için bkz . Windows üzerinde Linux için sanal anahtar oluşturma.
    • Windows Masaüstü sürümleri, EFLOW yüklemesi için kullanılabilecek varsayılan bir anahtarla birlikte gelir. Gerekirse kendi özel sanal anahtarınızı oluşturabilirsiniz.

İpucu

Windows üzerinde Linux için Azure IoT Edge dağıtımınızda GPU hızlandırmalı Linux modülleri kullanmak istiyorsanız, göz önünde bulundurmanız gereken birkaç yapılandırma seçeneği vardır.

GPU mimarinize bağlı olarak doğru sürücüleri yüklemeniz ve bir Windows Insider Programı derlemesine erişmeniz gerekebilir. Yapılandırma gereksinimlerinizi belirlemek ve bu önkoşulları karşılamak için bkz . Windows üzerinde Linux için Azure IoT Edge için GPU hızlandırma.

GPU hızlandırma önkoşullarını karşılamak için zaman ayırdığınızdan emin olun. Yükleme sırasında GPU hızlandırmasını istediğinize karar verirseniz yükleme işlemini yeniden başlatmanız gerekir.

Geliştirici araçları

Hedef cihazınızı Windows'da Linux için Azure IoT Edge yüklemesi ve Linux sanal makinesinin dağıtımı için hazırlayın:

  1. Hedef cihazdaki yürütme ilkesini olarak AllSignedayarlayın. Aşağıdaki komutu kullanarak yükseltilmiş bir PowerShell isteminde geçerli yürütme ilkesini de kontrol edebilirsiniz:

    Get-ExecutionPolicy -List
    

    yürütme ilkesi local machine değilse AllSigned, şunu kullanarak yürütme ilkesini ayarlayabilirsiniz:

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    

Windows PowerShell'de Linux için Azure IoT Edge modülü hakkında daha fazla bilgi için bkz . PowerShell işlevleri başvurusu.

Not

Cihaz sağlama hizmetiyle TPM kanıtlama kullandığınızda TPM 2.0 gereklidir.

Yalnızca TPM kullanırken grup değil, cihaz sağlama hizmeti kayıtları oluşturabilirsiniz.

IoT Edge'i yükleme

Hedef cihazınızda Windows üzerinde Linux için Azure IoT Edge'i dağıtın.

Not

Aşağıdaki PowerShell işleminde, Windows üzerinde Linux için IoT Edge'in yerel cihaza nasıl dağıtılacağı özetlenmiştir. PowerShell kullanarak uzak bir hedef cihaza dağıtmak için Uzak PowerShell kullanarak uzak bir cihaza bağlantı kurabilir ve bu komutları bu cihazda uzaktan çalıştırabilirsiniz.

  1. Yükseltilmiş bir PowerShell oturumunda, Windows'da Linux için IoT Edge'i indirmek için hedef cihaz mimarinize bağlı olarak aşağıdaki komutlardan birini çalıştırın.

    • 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. Cihazınıza Windows üzerinde Linux için IoT Edge'i yükleyin.

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn"
    

    Windows yüklemesinde Linux için özel IoT Edge ve yükleme komutuna ve VHDXDIR="<FULLY_QUALIFIED_PATH>" parametreleri ekleyerek INSTALLDIR="<FULLY_QUALIFIED_PATH>" VHDX dizinlerini belirtebilirsiniz. Örneğin, yükleme için D:\EFLOW klasörünü ve VHDX için D:\EFLOW-VHDX'i kullanmak istiyorsanız, aşağıdaki PowerShell cmdlet'ini kullanabilirsiniz.

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn","INSTALLDIR=D:\EFLOW", "VHDXDIR=D:\EFLOW-VHDX"
    
  3. Henüz yapmadıysanız hedef cihazdaki yürütme ilkesini olarak AllSigned ayarlayın. Geçerli yürütme ilkesini denetlemeye ve yürütme ilkesini olarak ayarlamaya yönelik komutlar için PowerShell önkoşullarına AllSignedbakın.

  4. Windows dağıtımında Linux için IoT Edge'i oluşturun. Dağıtım, Linux sanal makinenizi oluşturur ve sizin için IoT Edge çalışma zamanını yükler.

    Deploy-Eflow
    

    İpucu

    Varsayılan olarak, Deploy-Eflow komut 1 GB RAM, 1 vCPU çekirdeği ve 16 GB disk alanı ile Linux sanal makinenizi oluşturur. Ancak VM'nizin ihtiyaç duyduğu kaynaklar dağıttığınız iş yüklerine büyük ölçüde bağlıdır. VM'niz iş yüklerinizi desteklemek için yeterli belleğe sahip değilse başlatılamaz.

    Komutun isteğe bağlı parametrelerini kullanarak Deploy-Eflow sanal makinenin kullanılabilir kaynaklarını özelleştirebilirsiniz. Bu, en düşük donanım gereksinimlerine sahip bir cihaza EFLOW dağıtmak için gereklidir.

    Örneğin, aşağıdaki komut 1 vCPU çekirdeği, 1 GB RAM (MB ile gösterilir) ve 2 GB disk alanı içeren bir sanal makine oluşturur:

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

    Kullanılabilir tüm isteğe bağlı parametreler hakkında bilgi için bkz . Windows üzerinde Linux için IoT Edge için PowerShell işlevleri.

    Uyarı

    Varsayılan olarak, EFLOW Linux sanal makinesinde DNS yapılandırması yoktur. DHCP kullanan dağıtımlar, DHCP sunucusu tarafından yayılan DNS yapılandırmasını almaya çalışır. İnternet bağlantısı sağlamak için lütfen DNS yapılandırmanızı denetleyin. Daha fazla bilgi için bkz . AzEFLOW-DNS.

    GPU hızlandırmalı Linux modüllerini etkinleştirmek için dağıtımınıza bir GPU atayabilirsiniz. Bu özelliklere erişmek için Windows üzerinde Linux için Azure IoT Edge için GPU hızlandırma konusunda ayrıntılı önkoşulları yüklemeniz gerekir.

    GPU geçişi kullanmak için komutunuza gpuName, gpuPassthroughType ve gpuCount parametrelerini ekleyin. Deploy-Eflow Kullanılabilir tüm isteğe bağlı parametreler hakkında bilgi için bkz . Windows üzerinde Linux için IoT Edge için PowerShell işlevleri.

    Uyarı

    Donanım cihazı geçişinin etkinleştirilmesi güvenlik risklerini artırabilir. Microsoft, uygun olduğunda GPU'nuzun satıcısından bir cihaz azaltma sürücüsü önerir. Daha fazla bilgi için bkz . Ayrı cihaz ataması kullanarak grafik cihazları dağıtma.

  5. Lisans koşullarını kabul etmek için 'Y' girin.

  6. Tercihinize bağlı olarak İsteğe bağlı tanılama verilerini açmak veya kapatmak için 'O' veya 'R' girin.

  7. Dağıtım tamamlandıktan sonra PowerShell penceresi Dağıtımın başarılı olduğunu bildirir.

    Başarılı bir dağıtımda iletilerin sonunda

    Başarılı bir dağıtımdan sonra cihazınızı sağlamaya hazırsınız.

Cihazınızı TPM ile hazırlamaya hazırlamaya yönelik bazı adımlar vardır. Cihazınızı hazırlarken dağıtımınızı açık bırakın. Makalenin ilerleyen bölümlerinde dağıtımınıza geri döneceksiniz.

TPM geçişlerini etkinleştirme

Windows VM'de Linux için IoT Edge'in etkinleştirilebilen veya devre dışı bırakabilen bir TPM özelliği vardır. Varsayılan olarak devre dışıdır. Bu özellik etkinleştirildiğinde VM, konak makinenin TPM'sine erişebilir.

  1. PowerShell'i yükseltilmiş bir oturumda açın.

  2. Henüz yapmadıysanız, Windows PowerShell işlevlerinde Linux için IoT Edge'i çalıştırabilmek için cihazınızdaki AllSigned yürütme ilkesini olarak ayarlayın.

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    
  3. TPM özelliğini açın.

    Set-EflowVmFeature -feature 'DpsTpm' -enable
    

Cihazınızdan TPM bilgilerini alma

Cihazınızı sağlamak için TPM yonganız için bir Onay anahtarına ve cihazınızın Kayıt Kimliği'ne ihtiyacınız vardır. Hizmetin bağlanmaya çalıştığında cihazınızı tanıyabilmesi için bu bilgileri cihaz sağlama hizmeti örneğine sağlarsınız.

Onay anahtarı her TPM yongası için benzersizdir. Bu, kendisiyle ilişkili TPM yonga üreticisinden alınır. ONAY anahtarının SHA-256 karması oluşturarak TPM cihazınız için benzersiz bir kayıt kimliği türetebilirsiniz.

Windows üzerinde Linux için IoT Edge, bu bilgileri TPM'nizden almanıza yardımcı olacak bir PowerShell betiği sağlar. Betiği kullanmak için cihazınızda şu adımları izleyin:

  1. PowerShell'i yükseltilmiş bir oturumda açın.

  2. komutunu çalıştırın.

    Get-EflowVmTpmProvisioningInfo | Format-List
    

Cihaz sağlama hizmeti kaydı oluşturma

Cihaz sağlama hizmetinde tek bir kayıt oluşturmak için TPM'nizin sağlama bilgilerini kullanın.

Cihaz sağlama hizmetinde bir kayıt oluşturduğunuzda, İlk Cihaz İkizi Durumunu bildirme fırsatınız vardır. Cihaz ikizinde cihazları bölge, ortam, konum veya cihaz türü gibi çözümünüzde kullanılan ölçümlere göre gruplandıracak şekilde ayarlayabilirsiniz. Bu etiketler otomatik dağıtımlar oluşturmak için kullanılır.

İpucu

Bu makaledeki adımlar Azure portalına yöneliktir, ancak Azure CLI kullanarak tek tek kayıtlar da oluşturabilirsiniz. Daha fazla bilgi için bkz . az iot dps enrollment. CLI komutunun bir parçası olarak, kaydın bir IoT Edge cihazına ait olduğunu belirtmek için kenar etkin bayrağını kullanın.

  1. Azure portalında IoT Hub cihaz sağlama hizmeti örneğinize gidin.

  2. Ayarlar'ın altında Kayıtları yönet'i seçin.

  3. Bireysel kayıt ekle'yi seçin ve kaydı yapılandırmak için aşağıdaki adımları tamamlayın:

    1. Mekanizma için TPM'yi seçin.

    2. VM'nizden veya fiziksel cihazınızdan kopyaladığınız Onay anahtarını ve Kayıt Kimliğini belirtin.

    3. İstersensiniz cihazınız için bir kimlik belirtin. Cihaz kimliği sağlamazsanız kayıt kimliği kullanılır.

    4. VM'nizin veya fiziksel cihazınızın bir IoT Edge cihazı olduğunu bildirmek için True'yu seçin.

    5. Cihazınızı bağlamak istediğiniz bağlı IoT hub'ını seçin veya Yeni IoT Hub'a bağla'yı seçin. Birden çok hub seçebilirsiniz ve cihaz seçilen atama ilkesine göre bunlardan birine atanır.

    6. İstersenize İlk Cihaz İkizi Durumuna bir etiket değeri ekleyin. Modül dağıtımı için cihaz gruplarını hedeflemek için etiketleri kullanabilirsiniz. Daha fazla bilgi için bkz . IoT Edge modüllerini uygun ölçekte dağıtma.

    7. Kaydet'i seçin.

Artık bu cihaz için bir kayıt var olduğuna göre, IoT Edge çalışma zamanı yükleme sırasında cihazı otomatik olarak sağlayabilir.

Cihazı bulut kimliğiyle sağlama

  1. Windows cihazında yükseltilmiş bir PowerShell oturumu açın.

  2. Cihaz sağlama hizmeti örneğinizden topladığınız Kapsam Kimliğini kullanarak cihazınızı sağlayın.

    Provision-EflowVM -provisioningType "DpsTpm" -scopeId "SCOPE_ID_HERE"
    

    Cihazı özel bir Kayıt Kimliği kullanarak kaydettiyseniz, sağlama sırasında da bu kayıt kimliğini belirtmeniz gerekir:

    Provision-EflowVM -provisioningType "DpsTpm" -scopeId "SCOPE_ID_HERE" -registrationId "REGISTRATION_ID_HERE"
    

Yüklemenin başarılı olduğunu doğrulama

Windows üzerinde Linux için IoT Edge'in IoT Edge cihazınıza başarıyla yüklendiğini ve yapılandırıldığını doğrulayın.

Çalışma zamanı başarıyla başlatıldıysa IoT hub'ınıza gidip IoT Edge modüllerini cihazınıza dağıtmaya başlayabilirsiniz.

Cihaz sağlama hizmetinde oluşturduğunuz bireysel kaydın kullanıldığını doğrulayabilirsiniz. Azure portalında cihaz sağlama hizmeti örneğine gidin. Oluşturduğunuz bireysel kayıt için kayıt ayrıntılarını açın. Kaydın durumunun atandığını ve cihaz kimliğinin listelendiğine dikkat edin.

IoT Edge'in başarıyla yüklendiğini ve başlatıldığını doğrulamak için cihazınızda aşağıdaki komutları kullanın.

  1. PowerShell oturumunuzda aşağıdaki komutu kullanarak Windows VM üzerinde Linux için IoT Edge'inize bağlanın:

    Connect-EflowVm
    

    Not

    VM'ye SSH için izin verilen tek hesap, vm'yi oluşturan kullanıcıdır.

  2. Oturum açtıktan sonra aşağıdaki Linux komutunu kullanarak IoT Edge modüllerini çalıştırma listesini de kontrol edebilirsiniz:

    sudo iotedge list
    
  3. IoT Edge hizmetinde sorun gidermeniz gerekiyorsa aşağıdaki Linux komutlarını kullanın.

    1. Hizmetle ilgili sorunları gidermeniz gerekirse hizmet günlüklerini alın.

      sudo iotedge system logs
      
    2. check Cihazın yapılandırmasını ve bağlantı durumunu doğrulamak için aracı kullanın.

      sudo iotedge check
      

    Not

    Yeni sağlanan bir cihazda IoT Edge Hub ile ilgili bir hata görebilirsiniz:

    üretime hazır olma ×: Edge Hub'ın depolama dizini konak dosya sisteminde kalıcı hale geldi - Hata

    EdgeHub kapsayıcısının geçerli durumu denetlenemedi

    IoT Edge Hub modülü çalışmadığından yeni sağlanan bir cihazda bu hata beklenir. Hatayı çözmek için IoT Hub'da cihazın modüllerini ayarlayın ve bir dağıtım oluşturun. Cihaz için dağıtım oluşturma, IoT Edge Hub modülü dahil olmak üzere cihazdaki modülleri başlatır.

Windows'da Linux için IoT Edge'i kaldırma

Cihazınızdan Windows üzerinde Linux için Azure IoT Edge yüklemesini kaldırmak istiyorsanız aşağıdaki komutları kullanın.

  1. Windows'da Ayarlar'ı açma
  2. Program Ekle veya Kaldır'ı seçin
  3. Azure IoT Edge uygulamasını seçme
  4. Kaldır'ı seçin

Sonraki adımlar

Cihaz sağlama hizmeti kayıt işlemi, yeni cihazı sağlarken cihaz kimliğini ve cihaz ikizi etiketlerini aynı anda ayarlamanıza olanak tanır. Otomatik cihaz yönetimini kullanarak tek tek cihazları veya cihaz gruplarını hedeflemek için bu değerleri kullanabilirsiniz.

Azure portalını veya Azure CLI'yi kullanarak IoT Edge modüllerini uygun ölçekte dağıtmayı ve izlemeyi öğrenin.