Simetrik anahtarları kullanarak Windows cihazında Linux için IoT Edge oluşturma ve sağlama

Şunlar için geçerlidir:IoT Edge 1.4 checkmark IoT Edge 1.4

Önemli

IoT Edge 1.4 desteklenen sürümdür. Önceki bir sürümdeyseniz bkz. IoT Edge’i güncelleştirme.

Bu makale, Windows cihazında Linux için IoT Edge'i kaydetmeye ve sağlamaya yönelik uçtan uca yönergeler sağlar.

IoT hub'ına bağlanan her cihazda, buluttan cihaza veya cihazdan buluta iletişimi izlemek için kullanılan bir cihaz kimliği vardır. Bir cihazı IoT hub ana bilgisayar adı, cihaz kimliği ve cihazın IoT Hub'da kimlik doğrulaması için kullandığı bilgileri içeren bağlantı bilgileriyle yapılandırabilirsiniz.

Bu makaledeki adımlarda, tek bir cihazı IoT hub'ına bağladığınız el ile sağlama adlı işlem adım adım izlenmiştir. El ile sağlama için IoT Edge cihazlarının kimliğini doğrulamak için iki seçeneğiniz vardır:

  • Simetrik anahtarlar: IoT Hub'da yeni bir cihaz kimliği oluşturduğunuzda hizmet iki anahtar oluşturur. Anahtarlardan birini cihaza yerleştirirsiniz ve kimlik doğrulaması sırasında anahtarı IoT Hub'a sunar.

    Bu kimlik doğrulama yöntemini kullanmaya başlamak daha hızlıdır, ancak bu kadar güvenli değildir.

  • X.509 otomatik olarak imzalanan: İki X.509 kimlik sertifikası oluşturur ve bunları cihaza yerleştirirsiniz. IoT Hub'da yeni bir cihaz kimliği oluşturduğunuzda, her iki sertifikadan da parmak izi sağlarsınız. Cihaz IoT Hub'da kimlik doğrulaması yaparken bir sertifika sunar ve IoT Hub sertifikanın parmak iziyle eşleşip eşleşmediğini doğrular.

    Bu kimlik doğrulama yöntemi daha güvenlidir ve üretim senaryoları için önerilir.

Bu makale, kimlik doğrulama yönteminiz olarak simetrik anahtarların kullanılmasını kapsar. X.509 sertifikalarını kullanmak istiyorsanız bkz . X.509 sertifikalarını kullanarak Windows cihazında Linux için IoT Edge oluşturma ve sağlama.

Not

Ayarlayıp her birini el ile sağlamak istemiyorsanız, IoT Edge'in IoT Hub cihaz sağlama hizmetiyle nasıl çalıştığını öğrenmek için aşağıdaki makalelerden birini kullanın:

Önkoşullar

Bu makale, IoT Edge cihazınızı kaydetmeyi ve Windows'da Linux için IoT Edge'i yüklemeyi kapsar. Bu görevlerin farklı önkoşulları ve bunları gerçekleştirmek için kullanılan yardımcı programları vardır. Devam etmeden önce tüm önkoşulları karşıladığınızdan emin olun.

Cihaz yönetimi araçları

Cihazınızı kaydetme adımları için Azure portalı, Visual Studio Code veya Azure CLI'yı kullanabilirsiniz. Her yardımcı programın kendi önkoşulları vardır veya yüklenmesi gerekebilir:

Azure aboneliğinizde ücretsiz veya standart bir IoT hub'ı .

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.

Cihazınızı kaydetme

Tercihinize bağlı olarak cihazınızı kaydetmek için Azure portalı, Visual Studio Code veya Azure CLI'yı kullanabilirsiniz.

Azure portalındaki IoT hub'ınızda IoT Edge cihazları, edge etkin olmayan IoT cihazlarından ayrı olarak oluşturulur ve yönetilir.

  1. Azure portalında oturum açın ve IoT hub'ınıza gidin.

  2. Sol bölmede menüden Cihazlar'ı ve ardından Cihaz Ekle'yi seçin.

  3. Cihaz oluştur sayfasında aşağıdaki bilgileri sağlayın:

    • Açıklayıcı bir Cihaz Kimliği oluşturun, örneğin my-edge-device-1 (tümü küçük harf). Daha sonra kullanacağınız için bu Cihaz Kimliğini kopyalayın.
    • IoT Edge Cihazı onay kutusunu işaretleyin.
    • Kimlik doğrulama türü olarak Simetrik anahtar'ı seçin.
    • Yeni cihazı hub'ınıza bağlayan kimlik doğrulama anahtarlarını otomatik olarak oluşturmak için varsayılan ayarları kullanın.
  4. Kaydet'i seçin.

Yeni cihazınızın IoT hub'ınızda listelendiğini görmeniz gerekir.

IoT Hub'a kayıtlı bir cihazınız olduğuna göre, sonraki adımda IoT Edge çalışma zamanının yüklenmesini ve sağlanmasını tamamlamak için kullanılan sağlama bilgilerini alabilirsiniz.

Kayıtlı cihazları görüntüleme ve sağlama bilgilerini alma

Simetrik anahtar kimlik doğrulaması kullanan cihazların IoT Edge çalışma zamanının yüklenmesini ve sağlanmasını tamamlamak için bağlantı dizesi gerekir. bağlantı dizesi, cihazı oluşturduğunuzda IoT Edge cihazınız için oluşturulur. Visual Studio Code ve Azure CLI için bağlantı dizesi JSON çıkışındadır. Cihazınızı oluşturmak için Azure portalını kullanıyorsanız bağlantı dizesi cihazın kendisinden bulabilirsiniz. IoT hub'ınızda cihazınızı seçtiğinizde cihaz sayfasında olarak Primary connection string listelenir.

IoT hub'ınıza bağlanan uç özellikli cihazlar, IoT hub'ınızın Cihazlar sayfasında listelenir. Birden çok cihazınız varsa Iot Edge Cihazları türünü seçip Uygula'yı seçerek listeyi filtreleyebilirsiniz.

Cihazınızı ayarlamaya hazır olduğunuzda, fiziksel cihazınızı IoT hub'ında kimliğine bağlayan bağlantı dizesi gerekir. Simetrik anahtarlarla kimlik doğrulaması yapılan cihazların bağlantı dizesi portalda kopyalanabilir. portalda bağlantı dizesi bulmak için:

  1. Cihazlar sayfasından listeden IoT Edge cihaz kimliğini seçin.
  2. Birincil Bağlan ion Dizesi veya İkincil Bağlan ion Dizesi değerini kopyalayın. her iki anahtar da çalışır.

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'e yönelik 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.

    A successful deployment will say 'Deployment successful' at the end of the messages, PNG.

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

Cihazı bulut kimliğiyle sağlama

Cihazınızı bulut kimliği ve kimlik doğrulama bilgileriyle ayarlamaya hazırsınız.

Cihazınızı simetrik anahtarlar kullanarak sağlamak için cihazınızın bağlantı dizesi gerekir.

Aşağıdaki komutu hedef cihazınızdaki yükseltilmiş bir PowerShell oturumunda çalıştırın. Yer tutucu metni kendi değerlerinizle değiştirin.

Provision-EflowVm -provisioningType ManualConnectionString -devConnString "PASTE_DEVICE_CONNECTION_STRING_HERE"

Komut hakkında Provision-EflowVM daha fazla bilgi için bkz . Windows üzerinde Linux için IoT Edge için PowerShell işlevleri.

Başarılı yapılandırmayı 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.

  1. PowerShell oturumunuzda aşağıdaki komutu kullanarak Windows sanal makinesinde Linux için IoT Edge'inizde oturum açın:

    Connect-EflowVm
    

    Not

    Sanal makinede SSH'ye izin verilen tek hesap, bunu 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. 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.

Yeni bir IoT Edge cihazı oluşturduğunuzda, azure portalında durum kodu 417 -- The device's deployment configuration is not set görüntülenir. Bu durum normaldir ve cihazın modül dağıtımı almaya hazır olduğu anlamına gelir.

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