Membuat dan memprovisikan IoT Edge untuk Linux pada perangkat Windows dalam skala besar menggunakan TPM

Berlaku untuk:Tanda centang IoT Edge 1.4 IoT Edge 1.4

Penting

IoT Edge 1.5 LTS dan IoT Edge 1.4 adalah rilis yang didukung. IoT Edge 1.4 LTS adalah akhir masa pakai pada 12 November 2024. Jika Anda menggunakan rilis sebelumnya, lihat Memperbarui IoT Edge.

Artikel ini memberikan instruksi untuk provisi otomatis Azure IoT Edge untuk Linux di perangkat Windows dengan menggunakan Modul Platform Tepercaya (TPM). Anda dapat secara otomatis memprovisikan perangkat Azure IoT Edge dengan layanan provisi perangkat Azure IoT Hub. Jika Anda tidak terbiasa dengan proses provisi otomatis, tinjau ringkasan provisi sebelum melanjutkan.

Artikel ini menguraikan dua metodologi. Pilih preferensi berdasarkan arsitektur solusi Anda:

  • Provisi otomatis Linux di perangkat Windows dengan perangkat keras TPM fisik.
  • Provisi otomatis perangkat Linux di Windows menggunakan TPM simulasi. Kami merekomendasikan metode ini hanya sebagai skenario pengujian. TPM simulasi tidak menawarkan keamanan yang sama dengan TPM fisik.

Tugasnya adalah sebagai berikut:

  • Pasang IoT Edge untuk Linux pada Windows.
  • Ambil informasi TPM dari perangkat Anda.
  • Membuat entri pendaftaran individu untuk perangkat.
  • Provisikan perangkat Anda dengan informasi TPM perangkat.

Prasyarat

Sumber daya cloud

  • Hub IoT yang aktif
  • Instans layanan provisi perangkat IoT Hub di Azure, ditautkan ke hub IoT Anda

Persyaratan perangkat

Perangkat Windows dengan persyaratan minimum berikut:

  • Persyaratan Sistem

    • Windows 101/11 (Pro, Enterprise, IoT Enterprise)
    • Windows Server 20191/2022
      1 Windows 10 dan Windows Server 2019 build minimum 17763 dengan semua pembaruan kumulatif saat ini terinstal.
  • Persyaratan perangkat keras

    • Memori Kosong Minimum: 1 GB
    • Ruang Disk Kosong Minimum: 10 GB
  • Dukungan virtualisasi

  • Dukungan Jaringan

    • Windows Server tidak dilengkapi dengan sakelar default. Sebelum Anda dapat menyebarkan EFLOW untuk perangkat Windows Server, Anda harus membuat sakelar virtual. Untuk informasi selengkapnya, lihat Membuat sakelar virtual untuk Linux di Windows.
    • Versi Windows Desktop hadir dengan sakelar default yang dapat digunakan untuk pemasangan EFLOW. Jika diperlukan, Anda dapat membuat sakelar virtual kustom Anda sendiri.

Tip

Jika Anda ingin menggunakan modul Linux GPU terakselerasi di Azure IoT Edge untuk Linux pada penyebaran Windows Anda, ada beberapa opsi konfigurasi yang perlu dipertimbangkan.

Anda perlu memasang driver yang benar sesuai dengan arsitektur GPU Anda, dan Anda mungkin memerlukan akses ke build Windows Insider Program. Untuk menentukan kebutuhan konfigurasi Anda dan mengikuti prasyarat ini, lihat akselerasi GPU untuk Azure IoT Edge untuk Linux di Windows.

Pastikan Anda meluangkan waktu untuk memenuhi prasyarat akselerasi GPU sekarang. Anda perlu memulai ulang proses instalasi jika memutuskan ingin akselerasi GPU selama instalasi.

Alat pengembang

Siapkan perangkat target Anda untuk penginstalan Azure IoT Edge untuk Linux di Windows dan penyebaran komputer virtual Linux:

  1. Tetapkan kebijakan eksekusi pada perangkat target ke AllSigned. Anda dapat memeriksa kebijakan eksekusi saat ini dalam permintaan PowerShell yang ditingkatkan menggunakan perintah berikut:

    Get-ExecutionPolicy -List
    

    Jika kebijakan eksekusi local machine tidak AllSigned, Anda dapat menetapkan kebijakan eksekusi menggunakan:

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    

Untuk informasi selengkapnya tentang Azure IoT Edge untuk Linux pada modul Windows PowerShell, lihat referensi fungsi PowerShell.

Catatan

TPM 2.0 diperlukan saat Anda menggunakan pengesahan TPM dengan layanan provisi perangkat.

Saat menggunakan TPM, Anda hanya dapat membuat pendaftaran layanan penyediaan perangkat individual, bukan grup.

Pasang IoT Edge

Sebarkan Azure IoT Edge untuk Linux di Windows di perangkat target Anda.

Catatan

Proses PowerShell berikut menjabarkan cara menyebarkan IoT Edge untuk Linux di Windows ke perangkat lokal. Untuk menyebarkan ke perangkat target jarak jauh menggunakan PowerShell, Anda dapat menggunakan PowerShell Jarak Jauh untuk membuat koneksi ke perangkat jarak jauh dan menjalankan perintah ini dari jarak jauh pada perangkat tersebut.

  1. Dalam sesi PowerShell yang ditinggikan, jalankan salah satu perintah berikut tergantung pada arsitektur perangkat target Anda untuk mengunduh IoT Edge untuk Linux di 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. Instal IoT Edge untuk Linux di Windows di perangkat Anda.

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

    Anda dapat menentukan pemasangan IoT Edge kustom untuk Linux di Windows dan direktori VHDX dengan menambahkan parameter INSTALLDIR="<FULLY_QUALIFIED_PATH>" dan VHDXDIR="<FULLY_QUALIFIED_PATH>" ke perintah instal. Misalnya, jika Anda ingin menggunakan folder D:\EFLOW untuk penginstalan dan D:\EFLOW-VHDX untuk VHDX, Anda dapat menggunakan cmdlet PowerShell berikut.

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn","INSTALLDIR=D:\EFLOW", "VHDXDIR=D:\EFLOW-VHDX"
    
  3. Tetapkan kebijakan eksekusi pada perangkat target ke AllSigned jika belum ada. Lihat prasyarat PowerShell untuk perintah untuk memeriksa kebijakan eksekusi saat ini dan mengatur kebijakan eksekusi ke AllSigned.

  4. Buat IoT Edge untuk Linux pada penyebaran Windows. Penyebaran ini akan membuat mesin virtual Linux Anda dan menginstal runtime IoT Edge untuk Anda.

    Deploy-Eflow
    

    Tip

    Secara default, Deploy-Eflow perintah membuat komputer virtual Linux Anda dengan RAM 1 GB, inti 1 vCPU, dan ruang disk 16 GB. Namun, sumber daya yang dibutuhkan mesin virtual Anda sangat tergantung pada beban kerja yang Anda sebar. Jika mesin virtual Anda tidak memiliki memori yang cukup untuk mendukung beban kerja Anda, perintah akan gagal dimulai.

    Anda dapat menyesuaikan sumber daya mesin virtual yang tersedia menggunakan parameter opsional perintah Deploy-Eflow. Ini diperlukan untuk menyebarkan EFLOW pada perangkat dengan persyaratan perangkat keras minimum.

    Misalnya, perintah di bawah ini membuat komputer virtual dengan 1 inti vCPU, RAM 1 GB (diwakili dalam MB), dan ruang disk 2 GB:

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

    Untuk informasi tentang semua parameter opsional yang tersedia, lihat Fungsi PowerShell untuk IoT Edge untuk Linux di Windows.

    Peringatan

    Secara default, komputer virtual EFLOW Linux tidak memiliki konfigurasi DNS. Penyebaran menggunakan DHCP akan mencoba mendapatkan konfigurasi DNS yang disebarkan oleh server DHCP. Silakan periksa konfigurasi DNS Anda untuk memastikan konektivitas internet. Untuk informasi selengkapnya, lihat AzEFLOW-DNS.

    Anda dapat menetapkan GPU ke penyebaran Anda untuk mengaktifkan modul Linux GPU terakselerasi. Untuk mendapatkan akses ke fitur-fitur ini, Anda perlu memasang prasyarat yang dirinci dalam akselerasi GPU untuk Azure IoT Edge untuk Linux di Windows.

    Untuk menggunakan passthrough GPU, tambahkan parameter gpuName, gpuPassthroughType, dan gpuCount untuk perintah Deploy-Eflow Anda. Untuk informasi tentang semua parameter opsional yang tersedia, lihat Fungsi PowerShell untuk IoT Edge untuk Linux di Windows.

    Peringatan

    Mengaktifkan passthrough perangkat keras dapat meningkatkan risiko keamanan. Microsoft menyarankan driver mitigasi perangkat dari vendor GPU Anda, bila dapat diterapkan. Untuk informasi selengkapnya, lihat Menyebarkan perangkat grafis menggunakan penugasan perangkat terpisah.

  5. Masukkan 'Y' untuk menyetujui ketentuan lisensi.

  6. Masukkan 'O' atau 'R' untuk mengaktifkan/menonaktifkan Data diagnostik opsional, bergantung pada preferensi Anda.

  7. Setelah penyebaran selesai, jendela PowerShell melaporkan Penyebaran berhasil.

    Penyebaran yang berhasil akan menampilkan pesan 'Deployment berhasil' di akhir pesan, PNG.

    Setelah penyebaran berhasil, Anda siap untuk memprovisikan perangkat Anda.

Ada beberapa langkah untuk mempersiapkan perangkat Anda untuk provisi dengan TPM. Biarkan penyebaran Anda terbuka saat Anda menyiapkan perangkat. Anda akan kembali ke penyebaran Anda nanti di artikel.

Mengaktifkan passthrough TPM

IoT Edge untuk Linux di Windows VM memiliki fitur TPM yang dapat diaktifkan atau dinonaktifkan. Secara default, fitur ini dinonaktifkan. Saat fitur ini diaktifkan, VM dapat mengakses TPM komputer host.

  1. Buka PowerShell di sesi yang ditinggikan.

  2. Jika Anda belum melakukannya, atur kebijakan eksekusi pada perangkat Anda AllSigned sehingga Anda dapat menjalankan IoT Edge untuk Linux pada fungsi PowerShell Windows.

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    
  3. Aktifkan fitur TPM.

    Set-EflowVmFeature -feature 'DpsTpm' -enable
    

Mengambil informasi TPM dari perangkat Anda

Untuk memprovisikan perangkat, Anda memerlukan kunci Dukungan untuk chip TPM dan ID Pendaftaran untuk perangkat Anda. Anda memberikan informasi ini ke instans Anda dari layanan penyediaan perangkat sehingga layanan tersebut dapat mengenali perangkat Anda saat mencoba membuat sambungan.

Kunci dukungan unik untuk setiap chip TPM. Ini diperoleh dari produsen chip TPM yang terkait dengannya. Anda dapat memperoleh ID pendaftaran yang unik untuk perangkat TPM Anda dengan, misalnya, membuat hash SHA-256 dari kunci pengesahan.

IoT Edge untuk Linux di Windows menyediakan skrip PowerShell untuk membantu mengambil informasi ini dari TPM Anda. Untuk menggunakan skrip, ikuti langkah-langkah berikut di perangkat Anda:

  1. Buka PowerShell di sesi yang ditinggikan.

  2. Jalankan perintah .

    Get-EflowVmTpmProvisioningInfo | Format-List
    

Membuat pendaftaran layanan provisi perangkat

Gunakan informasi provisi TPM Anda untuk membuat pendaftaran individu dalam layanan provisi perangkat.

Saat membuat pendaftaran di layanan provisi perangkat, Anda memiliki kesempatan untuk menyatakan Status Perangkat Kembaran Awal. Di perangkat kembaran, Anda dapat mengatur tag ke perangkat grup dengan metrik apa pun yang digunakan di solusi Anda, seperti wilayah, lingkungan, lokasi, atau jenis perangkat. Tag ini digunakan untuk membuat penyebaran otomatis.

Tip

Langkah-langkah dalam artikel ini adalah untuk portal Microsoft Azure, tetapi Anda juga dapat membuat pendaftaran individu dengan menggunakan Azure CLI. Untuk informasi selengkapnya, lihat az iot dps enrollment. Sebagai bagian dari perintah CLI, gunakan bendera berkemampuan edge untuk menentukan bahwa pendaftaran tersebut adalah untuk perangkat IoT Edge.

  1. Di portal Microsoft Azure, buka instans layanan provisi perangkat IoT Hub Anda.

  2. Di bawah Pengaturan, pilih Kelola pendaftaran.

  3. Pilih Tambahkan pendaftaran individu, lalu selesaikan langkah-langkah berikut untuk mengonfigurasi pendaftaran:

    1. Untuk Mekanisme, pilih TPM.

    2. Berikan Kunci dukungan dan ID Pendaftaran yang Anda salin dari mesin virtual atau perangkat fisik.

    3. Berikan ID untuk perangkat Anda jika Anda menginginkannya. Jika Anda tidak memberikan ID perangkat, ID pendaftaran akan digunakan.

    4. Pilih Benar untuk menyatakan bahwa mesin virtual atau perangkat fisik Anda adalah perangkat IoT Edge.

    5. Pilih IoT Hub tertaut yang ingin disambungkan ke perangkat Anda, atau pilih Tautkan ke IoT Hub baru. Anda dapat memilih beberapa hub, dan perangkat akan ditetapkan ke salah satunya sesuai dengan kebijakan alokasi yang dipilih.

    6. Tambahkan nilai tag ke Status Perangkat Kembaran Awal jika Anda menginginkannya. Anda dapat menggunakan tag untuk menargetkan grup perangkat untuk penyebaran modul. Untuk informasi selengkapnya, lihat Sebarkan modul IoT Edge dalam skala besar.

    7. Pilih Simpan.

Sekarang setelah pendaftaran ada untuk perangkat ini, runtime IoT Edge dapat secara otomatis menyediakan perangkat selama instalasi.

Menentukan perangkat dengan identitas cloud-nya

  1. Buka sesi PowerShell yang ditinggikan di perangkat Windows.

  2. Provisikan perangkat Anda menggunakan ID Cakupan yang Anda kumpulkan dari layanan provisi perangkat.

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

    Jika Anda telah mendaftarkan perangkat menggunakan Id Pendaftaran kustom, Anda harus menentukan ID pendaftaran tersebut juga saat menyediakan:

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

Verifikasi keberhasilan penginstalan

Verifikasi bahwa IoT Edge untuk Linux di Windows berhasil diinstal dan dikonfigurasi pada perangkat IoT Edge Anda.

Jika runtime berhasil dimulai, Anda dapat masuk ke hub IoT dan mulai menyebarkan modul IoT Edge ke perangkat Anda.

Anda dapat memverifikasi bahwa pendaftaran individual yang Anda buat di layanan provisi perangkat telah digunakan. Buka instans layanan provisi perangkat Anda di portal Microsoft Azure. Buka detail pendaftaran untuk pendaftaran individual yang Anda buat. Perhatikan bahwa status pendaftaran telah ditetapkan dan ID perangkat telah dicantumkan.

Gunakan perintah berikut di perangkat Anda untuk memverifikasi bahwa IoT Edge terpasang dan berhasil dimulai.

  1. Sambungkan ke IoT Edge Anda untuk Linux di Windows VM menggunakan perintah berikut di sesi PowerShell Anda:

    Connect-EflowVm
    

    Catatan

    Satu-satunya akun yang diizinkan untuk SSH ke VM adalah pengguna yang membuatnya.

  2. Setelah Anda masuk, Anda dapat memeriksa daftar modul IoT Edge yang sedang berjalan menggunakan perintah Linux berikut:

    sudo iotedge list
    
  3. Jika Anda perlu memecahkan masalah layanan IoT Edge, gunakan perintah Linux berikut.

    1. Jika Anda perlu memecahkan masalah layanan, ambil log layanan.

      sudo iotedge system logs
      
    2. Gunakan alat check untuk memverifikasi konfigurasi dan status koneksi perangkat.

      sudo iotedge check
      

    Catatan

    Pada perangkat yang baru disediakan, Anda mungkin melihat kesalahan yang terkait dengan IoT Edge Hub:

    × kesiapan produksi: Direktori penyimpanan Edge Hub dipertahankan pada sistem file host - Kesalahan

    Tidak dapat memeriksa status kontainer edgeHub saat ini

    Kesalahan ini diharapkan pada perangkat yang baru disediakan karena modul IoT Edge Hub tidak berjalan. Untuk mengatasi kesalahan, di IoT Hub, atur modul untuk perangkat dan buat penyebaran. Membuat penyebaran untuk perangkat memulai modul pada perangkat termasuk modul IoT Edge Hub.

Menghapus instalan IoT Edge untuk Linux di Windows

Jika Anda ingin menghapus Azure IoT Edge untuk Linux pada penginstalan Windows dari perangkat Anda, gunakan perintah berikut.

  1. Buka Pengaturan di Windows
  2. Pilih Tambahkan atau Hapus Program
  3. Pilih aplikasi Azure IoT Edge
  4. Pilih Hapus instalan

Langkah berikutnya

Proses pendaftaran layanan provisi perangkat memungkinkan Anda mengatur ID perangkat dan tag perangkat kembaran pada saat yang sama saat Anda memprovisikan perangkat baru. Anda dapat menggunakan nilai tersebut untuk menargetkan perangkat individu atau sekumpulan perangkat dengan menggunakan manajemen perangkat otomatis.

Pelajari cara menyebarkan dan memantau modul IoT Edge dalam skala besar dengan menggunakan portal Microsoft Azure atau menggunakan Azure CLI.