Simetrik anahtarları kullanarak Windows cihazlarında büyük ölçekte Linux için IoT Edge oluşturma ve sağlama
Şunlar için geçerlidir: 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, simetrik anahtarlar kullanarak Windows cihazlarında Linux için bir veya daha fazla IoT Edge'in nasıl otomatik olarak sağlanabilir olduğu gösterilmektedir. Azure IoT Edge cihazlarını Azure IoT Hub cihaz sağlama hizmeti (DPS) ile otomatik olarak sağlayabilirsiniz. Otomatik sağlama işlemini bilmiyorsanız devam etmeden önce sağlama genel bakışını gözden geçirin.
Görevler aşağıdaki gibidir:
- Tek bir cihaz için tek bir kayıt veya bir cihaz kümesi için grup kaydı oluşturun.
- IoT Edge çalışma zamanının yüklü olduğu bir Linux sanal makinesi dağıtın ve IoT Hub'a bağlayın.
Simetrik anahtar kanıtlama, cihaz sağlama hizmeti örneğiyle cihazın kimliğini doğrulamaya yönelik basit bir yaklaşımdır. Bu kanıtlama yöntemi, cihaz sağlama konusunda yeni olan veya katı güvenlik gereksinimleri olmayan geliştiriciler için bir "Merhaba dünya" deneyimini temsil eder. TPM veya X.509 sertifikaları kullanan cihaz kanıtlaması daha güvenlidir ve daha sıkı güvenlik gereksinimleri için kullanılmalıdır.
Ö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:
Hedef cihazdaki yürütme ilkesini olarak
AllSigned
ayarlayı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ğilseAllSigned
, ş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.
DPS kaydı oluşturma
DPS aracılığıyla bir veya daha fazla cihaz sağlamak için bir kayıt oluşturun.
Tek bir IoT Edge cihazı sağlamak istiyorsanız tek bir kayıt oluşturun. Birden çok cihazın sağlanması gerekiyorsa DPS grup kaydı oluşturma adımlarını izleyin.
DPS'de bir kayıt oluşturduğunuzda, ilk cihaz ikizi durumunu bildirme fırsatınız vardır. Cihaz ikizinde cihazları bölge, ortam, konum veya cihaz türü gibi çözümünüzde ihtiyacınız olan ölçümlere göre gruplandıracak şekilde ayarlayabilirsiniz. Bu etiketler otomatik dağıtımlar oluşturmak için kullanılır.
Cihaz sağlama hizmetindeki kayıtlar hakkında daha fazla bilgi için bkz . Cihaz kayıtlarını yönetme.
DPS bireysel kaydı oluşturma
İ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.
Azure portalında IoT Hub cihaz sağlama hizmeti örneğine gidin.
Ayarlar'ın altında Kayıtları yönet'i seçin.
Bireysel kayıt ekle'yi seçin ve kaydı yapılandırmak için aşağıdaki adımları tamamlayın:
Mekanizma için Simetrik Anahtar'ı seçin.
Cihazınız için benzersiz bir Kayıt Kimliği sağlayın.
İsteğe bağlı olarak, cihazınız için bir IoT Hub Cihaz Kimliği sağlayın. Modül dağıtımı için tek bir cihazı hedeflemek için cihaz kimliklerini kullanabilirsiniz. Cihaz kimliği sağlamazsanız kayıt kimliği kullanılır.
Kaydın bir IoT Edge cihazına yönelik olduğunu bildirmek için True'yu seçin.
İsteğe bağlı olarak, İlk Cihaz İkizi Durumuna bir etiket değeri ekleyin. Modül dağıtımı için cihaz gruplarını hedeflemek için etiketleri kullanabilirsiniz. Örneğin:
{ "tags": { "environment": "test" }, "properties": { "desired": {} } }
Kaydet'i seçin.
IoT Edge çalışma zamanını yüklerken kullanılacak bireysel kaydın Birincil Anahtar değerini kopyalayın.
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.
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.
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
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 ekleyerekINSTALLDIR="<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"
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ınaAllSigned
bakın.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.
Lisans koşullarını kabul etmek için 'Y' girin.
Tercihinize bağlı olarak İsteğe bağlı tanılama verilerini açmak veya kapatmak için 'O' veya 'R' girin.
Dağıtım tamamlandıktan sonra PowerShell penceresi Dağıtımın başarılı olduğunu bildirir.
Başarılı bir dağıtımdan sonra cihazınızı sağlamaya hazırsınız.
Cihazı bulut kimliğiyle sağlama
Çalışma zamanı cihazınıza yüklendikten sonra, cihazı cihaz sağlama hizmetine ve IoT Hub'a bağlanmak için kullandığı bilgilerle yapılandırın.
Aşağıdaki bilgileri hazır bulundurun:
- DPS Kimlik Kapsamı değeri
- Oluşturduğunuz cihaz Kayıt Kimliği
- Tek bir kayıttan birincil anahtar veya grup kaydı kullanan cihazlar için türetilmiş anahtar.
Aşağıdaki komutu yükseltilmiş bir PowerShell oturumunda, yer tutucu değerleri kendi değerlerinizle güncelleştirilerek çalıştırın:
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
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.
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.
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.
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
IoT Edge hizmetinde sorun gidermeniz gerekiyorsa aşağıdaki Linux komutlarını kullanın.
Hizmet günlüklerini alın.
sudo iotedge system logs
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.
- Windows'da Ayarlar'ı açma
- Program Ekle veya Kaldır'ı seçin
- Azure IoT Edge uygulamasını seçme
- 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önetimi 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.
Aşağıdakileri de yapabilirsiniz:
- Modülleri cihazınıza dağıtmayı öğrenmek için IoT Edge modüllerini dağıtmaya devam edin.
- Windows sanal makinesinde Linux için IoT Edge'inizde sertifikaları yönetmeyi ve konak işletim sisteminden Linux sanal makinenize dosya aktarmayı öğrenin.
- IoT Edge cihazlarınızı ara sunucu üzerinden iletişim kuracak şekilde yapılandırmayı öğrenin.