Bagikan melalui


Membuat dan menyediakan IoT Edge untuk Linux pada perangkat Windows dalam skala besar menggunakan sertifikat X.509

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 petunjuk menyeluruh untuk provisi otomatis dari satu atau beberapa perangkat IoT Edge untuk Linux di Windowsmenggunakan sertifikat X.509. Anda dapat secara otomatis memprovisikan perangkat Azure IoT Edge dengan layanan provisi perangkat Azure IoT Hub (DPS). Jika Anda tidak terbiasa dengan proses provisi otomatis, tinjau gambaran umum provisi sebelum melanjutkan.

Tugasnya adalah sebagai berikut:

  1. Hasilkan sertifikat dan kunci.
  2. Buat pendaftaran individual untuk perangkat tunggal atau pendaftaran grup untuk serangkaian perangkat.
  3. Gunakan mesin virtual Linux dengan runtime IoT Edge yang diinstal dan hubungkan ke IoT Hub.

Menggunakan sertifikat X.509 sebagai mekanisme pengesahan adalah cara terbaik untuk menskalakan produksi dan menyederhanakan penyediaan perangkat. Biasanya, sertifikat X.509 diatur dalam rantai sertifikat kepercayaan. Dimulai dengan sertifikat akar yang ditandatangani sendiri atau tepercaya, setiap sertifikat dalam rantai menandatangani sertifikat lebih rendah berikutnya. Pola ini membuat rantai kepercayaan yang didelegasikan dari sertifikat akar ke bawah melalui setiap sertifikat perantara ke sertifikat perangkat hilir akhir yang diinstal pada 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.

Hasilkan sertifikat identitas perangkat

Sertifikat identitas perangkat adalah sertifikat hilir yang terhubung melalui rantai sertifikat kepercayaan ke sertifikat otoritas sertifikat (CA) X.509 teratas. Sertifikat identitas perangkat harus memiliki nama umum (CN) yang diatur ke ID perangkat yang Anda inginkan untuk memiliki perangkat di IoT hub Anda.

Sertifikat identitas perangkat hanya digunakan untuk menyediakan perangkat IoT Edge dan mengautentikasi perangkat dengan Azure IoT Hub. Sertifikat tersebut tidak menandatangani sertifikat, tidak seperti sertifikat CA yang disajikan perangkat IoT Edge ke modul atau perangkat hilir untuk verifikasi. Untuk informasi selengkapnya, lihat Detail penggunaan sertifikat Azure IoT Edge.

Setelah Anda membuat sertifikat identitas perangkat, Anda harus memiliki dua file: file .cer atau .pem yang berisi bagian publik sertifikat, dan file .cer atau .pem dengan kunci pribadi sertifikat. Jika Anda berencana untuk menggunakan pendaftaran grup di DPS, Anda juga memerlukan bagian publik dari sertifikat CA menengah atau root dalam rantai kepercayaan sertifikat yang sama.

Anda memerlukan file berikut untuk menyiapkan penyediaan otomatis dengan X.509:

  • Sertifikat identitas perangkat dan sertifikat kunci pribadinya. Sertifikat identitas perangkat diunggah ke DPS jika Anda membuat pendaftaran individual. Kunci pribadi diteruskan ke runtime IoT Edge.
  • Rantai sertifikat penuh, yang seharusnya memiliki setidaknya identitas perangkat dan sertifikat perantara di dalamnya. Rantai sertifikat penuh diteruskan ke runtime IoT Edge.
  • Sertifikat CA menengah atau root dari rantai sertifikat kepercayaan. Sertifikat ini diunggah ke DPS jika Anda membuat pendaftaran grup.

Catatan

Saat ini, pembatasan libiothsm mencegah penggunaan sertifikat yang kedaluwarsa pada atau setelah 1 Januari 2038.

Gunakan sertifikat uji (opsional)

Jika Anda tidak memiliki otoritas sertifikat yang tersedia untuk membuat sertifikasi identitas baru dan ingin mencoba skenario ini, repositori git Azure IoT Edge berisi skrip yang dapat Anda gunakan untuk menghasilkan sertifikat pengujian. Sertifikat ini dirancang hanya untuk pengujian pengembangan, dan tidak boleh digunakan dalam produksi.

Untuk membuat sertifikat pengujian, ikuti langkah-langkah dalam Membuat sertifikat demo untuk menguji fitur perangkat IoT Edge. Selesaikan dua bagian yang diperlukan untuk mengatur skrip pembuatan sertifikat dan membuat sertifikat CA root. Kemudian, ikuti langkah-langkah untuk membuat sertifikat identitas perangkat. Setelah selesai, Anda harus memiliki rantai sertifikat dan pasangan kunci berikut:

  • <WRKDIR>\certs\iot-edge-device-identity-<name>-full-chain.cert.pem
  • <WRKDIR>\private\iot-edge-device-identity-<name>.key.pem

Anda memerlukan kedua sertifikat ini pada perangkat IoT Edge. Jika Anda akan menggunakan pendaftaran individual di DPS, maka Anda mengunggah file .cert.pem. Jika Anda akan menggunakan pendaftaran grup di DPS, maka Anda juga memerlukan sertifikat CA menengah atau root dalam rantai sertifikat kepercayaan yang sama untuk diunggah. Jika Anda menggunakan sertifikasi demo, gunakan <WRKDIR>\certs\azure-iot-test-only.root.ca.cert.pem sertifikat untuk pendaftaran grup.

Buat pendaftaran DPS

Gunakan sertifikat dan kunci yang Anda buat untuk membuat pendaftaran grup di DPS untuk beberapa perangkat IoT Edge.

Jika Anda ingin menyediakan satu perangkat IoT Edge, buatlah pendaftaran individu. Jika Anda memerlukan beberapa perangkat yang disediakan, ikuti langkah-langkah untuk membuat pendaftaran grup DPS.

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

Untuk informasi selengkapnya tentang pendaftaran di Layanan Provisi Perangkat, lihat Cara mengelola pendaftaran perangkat.

Membuat pendaftaran individu DPS

Pendaftaran individu mengambil bagian publik dari sertifikat identitas perangkat dan mencocokkannya dengan sertifikat pada perangkat.

Tip

Langkah-langkah dalam artikel ini adalah untuk portal Microsoft Azure, tetapi Anda juga dapat membuat pendaftaran individu 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.

  2. Di bawah Pengaturan, pilih Kelola pendaftaran.

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

    • Mekanisme: Pilih X.509.

    • Sertifikat Utama .pem .cer file: Unggah file publik dari sertifikat identitas perangkat. Jika Anda menggunakan skrip untuk membuat sertifikat pengujian, pilih file berikut:

      <WRKDIR>\certs\iot-edge-device-identity-<name>.cert.pem

    • ID Azure IoT Hub: Berikan ID untuk perangkat Anda jika Anda mau. Anda dapat menggunakan ID perangkat untuk menargetkan perangkat individual untuk penyebaran modul. Jika Anda tidak memberikan ID perangkat, nama umum (CN) dalam sertifikat X.509 digunakan.

    • Perangkat IoT Edge: Pilih True untuk menyatakan bahwa pendaftaran adalah untuk perangkat IoT Edge.

    • Pilih hub IoT yang bisa ditetapkan oleh perangkat ini: Pilih hub IoT yang ditautkan yang ingin disambungkan perangkat Anda. Anda dapat memilih beberapa hub, dan perangkat akan ditetapkan ke salah satunya sesuai dengan kebijakan alokasi yang dipilih.

    • Status Kembar Perangkat Awal: Tambahkan nilai tag yang akan ditambahkan ke perangkat kembar jika Anda mau. Anda dapat menggunakan tag untuk menargetkan grup perangkat untuk penyebaran otomatis. Contohnya:

      {
          "tags": {
             "environment": "test"
          },
          "properties": {
             "desired": {}
          }
      }
      
  4. Pilih Simpan.

Di bawah Kelola Pendaftaran, Anda dapat melihat ID Pendaftaran untuk pendaftaran yang baru saja Anda buat. Harap catat ID Pendaftaran, karena dapat digunakan saat Anda memprovisikan perangkat Anda.

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

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

Menentukan perangkat dengan identitas cloud-nya

Setelah runtime diinstal pada perangkat Anda, konfigurasikan perangkat dengan informasi yang digunakannya untuk terhubung ke layanan provisi perangkat dan IoT Hub.

Siapkan informasi berikut:

  • Nilai Cakupan ID DPS. Anda dapat mengambil nilai ini dari halaman gambaran umum instans DPS Anda di portal Microsoft Azure.
  • Berkas rantai sertifikat identitas perangkat pada perangkat.
  • Berkas kunci identitas perangkat pada perangkat.

Jalankan perintah berikut dalam sesi PowerShell yang ditingkatkan dengan nilai tempat penampung yang diperbarui dengan nilai Anda sendiri:

Provision-EflowVm -provisioningType DpsX509 -scopeId PASTE_YOUR_ID_SCOPE_HERE -registrationId PASTE_YOUR_REGISTRATION_ID_HERE -identityCertPath PASTE_ABSOLUTE_PATH_TO_IDENTITY_CERTIFICATE_HERE -identityPrivateKey PASTE_ABSOLUTE_PATH_TO_IDENTITY_PRIVATE_KEY_HERE

Verifikasi keberhasilan penginstalan

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

Anda dapat memverifikasi bahwa pendaftaran individual yang Anda buat di layanan provisi perangkat telah digunakan. Navigasikan ke 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.

  1. Masuk ke IoT Edge untuk Linux di komputer virtual Windows menggunakan perintah berikut di sesi PowerShell Anda:

    Connect-EflowVm
    

    Catatan

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

  2. Setelah Masuk, Anda dapat memeriksa daftar modul IoT Edge yang 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.

Saat Anda membuat perangkat IoT Edge baru, perangkat tersebut menampilkan kode 417 -- The device's deployment configuration is not set status di portal Azure. Status ini normal, dan berarti perangkat siap untuk menerima penyebaran modul.

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 masing-masing perangkat atau grup perangkat menggunakan manajemen perangkat otomatis. Pelajari cara Menerapkan dan memantau modul IoT Edge dalam skala besar menggunakan portal Azure atau menggunakan Azure CLI.

Anda juga dapat: