Bagikan melalui


Buat dan provisikan perangkat IoT Edge di Linux menggunakan kunci simetris

Berlaku untuk: ikon ya IoT Edge 1.1

Penting

Tanggal akhir dukungan IoT Edge 1.1 adalah 13 Desember 2022. Periksa Siklus Hidup Produk Microsoft untuk mendapatkan informasi tentang bagaimana produk, layanan, teknologi, atau API ini didukung. Untuk informasi selengkapnya tentang memperbarui ke IoT Edge versi terbaru, lihat Memperbarui IoT Edge.

Artikel ini memberikan instruksi menyeluruh untuk mendaftarkan dan memprovisikan perangkat IoT Edge Linux, termasuk menginstal IoT Edge.

Setiap perangkat yang tersambung ke hub IoT memiliki ID perangkat yang digunakan untuk melacak komunikasi cloud-to-device atau device-to-cloud. Anda mengonfigurasi perangkat dengan informasi koneksinya, yang mencakup nama host hub IoT, ID perangkat, dan informasi yang digunakan perangkat untuk mengautentikasi ke IoT Hub.

Langkah-langkah dalam artikel ini melalui proses yang disebut penyediaan manual, di mana Anda menghubungkan satu perangkat ke hub IoT-nya. Untuk penyediaan manual, Anda memiliki dua opsi untuk mengautentikasi perangkat IoT Edge:

  • Kunci simetris: Saat Anda membuat identitas perangkat baru di IoT Hub, layanan ini membuat dua kunci. Anda menempatkan salah satu kunci pada perangkat, dan menyajikan kunci ke IoT Hub saat mengautentikasi.

    Metode autentikasi ini lebih cepat untuk memulai, tetapi tidak sama amannya.

  • X.509 self-signed: Anda membuat dua sertifikat identitas X.509 dan menempatkannya di perangkat. Saat Anda membuat identitas perangkat baru di IoT Hub, Anda menyediakan thumbprint dari kedua sertifikat. Saat perangkat mengautentikasi ke IoT Hub, perangkat menyajikan satu sertifikat dan IoT Hub memverifikasi bahwa sertifikat cocok dengan thumbprint-nya.

    Metode autentikasi ini lebih aman dan disarankan untuk skenario produksi.

Artikel ini membahas penggunaan kunci simetris sebagai metode autentikasi Anda. Jika Anda ingin menggunakan sertifikat X.509, lihat Membuat dan memprovisikan perangkat IoT Edge di Linux menggunakan sertifikat X.509.

Catatan

Jika Anda memiliki banyak perangkat untuk disiapkan dan tidak ingin memprovisikan masing-masing perangkat secara manual, gunakan salah satu artikel berikut untuk mempelajari cara kerja IoT Edge dengan layanan provisi perangkat IoT Hub:

Prasyarat

Artikel ini mencakup mendaftarkan perangkat IoT Edge Anda dan menginstal IoT Edge di perangkat IoT Edge. Tugas-tugas ini memiliki prasyarat dan utilitas berbeda yang digunakan untuk menyelesaikannya. Pastikan Anda memiliki semua prasyarat yang tercakup sebelum melanjutkan.

Alat manajemen perangkat

Anda dapat menggunakan portal Azure, Visual Studio Code, atau Azure CLI untuk langkah-langkah mendaftarkan perangkat Anda. Setiap utilitas memiliki prasyaratnya sendiri:

Hub IoT gratis atau standar di langganan Azure Anda.

Persyaratan perangkat

Perangkat Linux X64, ARM32, atau ARM64.

Microsoft menerbitkan paket penginstalan untuk berbagai sistem operasi.

Untuk informasi terkini tentang sistem operasi mana yang saat ini didukung untuk skenario produksi, lihat Sistem yang didukung Azure IoT Edge.

Mendaftarkan perangkat Anda

Anda dapat menggunakan portal Microsoft Azure, Visual Studio Code, atau CLI Azure untuk mendaftarkan perangkat, tergantung pada preferensi Anda.

Di hub IoT Anda di portal Microsoft Azure, perangkat IoT Edge dibuat dan dikelola secara terpisah dari perangkat IoT dengan edge tidak aktif.

  1. Masuk ke portal Azure dan navigasikan ke IoT hub Anda.

  2. Di panel kiri, pilih Perangkat dari menu, lalu pilih Tambahkan Perangkat.

  3. Pada halaman Buat perangkat, berikan informasi berikut ini:

    • Membuat ID perangkat deskriptif. Catat ID perangkat ini, karena Anda akan menggunakannya nanti.
    • Centang kotak IoT Edge Device .
    • Pilih Kunci simetris sebagai jenis autentikasi.
    • Gunakan pengaturan default untuk membuat kunci autentikasi secara otomatis dan menyambungkan perangkat baru ke hub Anda.
  4. Pilih Simpan.

Setelah Anda memiliki perangkat yang terdaftar di IoT Hub, ambil informasi yang Anda gunakan untuk menyelesaikan instalasi dan provisi runtime IoT Edge.

Melihat perangkat terdaftar dan mengambil informasi provisi

Perangkat yang menggunakan autentikasi kunci simetris memerlukan string koneksi untuk menyelesaikan penginstalan dan penyediaan runtime IoT Edge.

Perangkat berkemampuan tepi yang tersambung ke hub IoT Anda tercantum di halaman Perangkat . Anda dapat memfilter daftar menurut jenis Perangkat Iot Edge.

Cuplikan layar cara melihat perangkat Anda di portal Azure, IoT Hub.

Saat Anda siap untuk mengatur perangkat Anda, Anda memerlukan string koneksi yang menghubungkan perangkat fisik Anda dengan identitasnya di hub IoT.

Perangkat yang mengautentikasi dengan kunci simetris memiliki string koneksi yang tersedia untuk disalin di portal.

  1. Dari halaman Perangkat di portal, pilih ID perangkat IoT Edge dari daftar.
  2. Salin nilai String Koneksi Utama atau String Koneksi Sekunder.

Pasang IoT Edge

Di bagian ini, Anda akan menyiapkan mesin virtual atau perangkat fisik Linux untuk IoT Edge. Kemudian, Anda menginstal IoT Edge.

Jalankan perintah berikut untuk menambahkan repositori paket lalu tambahkan kunci penandatanganan paket Microsoft ke daftar kunci tepercaya Anda.

Penting

Pada 30 Juni 2022 Raspberry Pi OS Stretch dihentikan dari daftar dukungan OS Tier 1. Untuk menghindari potensi kerentanan keamanan, perbarui OS host Anda ke Bullseye.

Penginstalan dapat dilakukan dengan beberapa perintah. Buka terminal dan jalankan perintah berikut:

  • 20.04:

    wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb
    
  • 18.04:

    wget https://packages.microsoft.com/config/ubuntu/18.04/multiarch/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb
    

Catatan

Paket perangkat lunak Azure IoT Edge tunduk pada ketentuan lisensi yang terletak di setiap paket (direktori usr/share/doc/{package-name} atau LICENSE). Baca syarat lisensi sebelum menggunakan paket. Dengan memasang dan menggunakan paket ini, berarti Anda menyetujui syarat tersebut. Jika Anda tidak setuju dengan syarat lisensi, jangan gunakan paket tersebut.

Memasang komputer kontainer

Azure IoT Edge mengandalkan runtime kontainer yang kompatibel dengan OCI. Untuk skenario produksi, kami menyarankan Anda menggunakan mesin Moby. Mesin Moby adalah satu-satunya mesin kontainer yang secara resmi didukung dengan IoT Edge. Gambar kontainer Docker CE/EE kompatibel dengan runtime Moby.

Pasang mesin Moby.

sudo apt-get update; \
  sudo apt-get install moby-engine

Setelah mesin Moby berhasil diinstal, konfigurasikan untuk menggunakan local driver pengelogan sebagai mekanisme pengelogan. Untuk mempelajari selengkapnya tentang konfigurasi pengelogan, lihat Daftar Periksa Penyebaran Produksi.

  • Buat atau buka file konfigurasi daemon Docker di /etc/docker/daemon.json.

  • Atur driver pengelogan default ke local driver pengelogan seperti yang ditunjukkan pada contoh di bawah ini.

       {
          "log-driver": "local"
       }
    
  • Mulai ulang mesin kontainer agar perubahan diterapkan.

    sudo systemctl restart docker
    

    Tip

    Jika Anda mendapatkan kesalahan saat menginstal mesin kontainer Moby, verifikasi kernel Linux Anda untuk kompatibilitas Moby. Beberapa produsen perangkat tertanam mengirimkan gambar perangkat yang berisi kernel Linux kustom tanpa fitur yang diperlukan untuk kompatibilitas mesin kontainer. Jalankan perintah berikut, yang menggunakan skrip check-config yang disediakan oleh Moby, untuk memeriksa konfigurasi kernel Anda:

    curl -ssl https://raw.githubusercontent.com/moby/moby/master/contrib/check-config.sh -o check-config.sh
    chmod +x check-config.sh
    ./check-config.sh
    

    Dalam output skrip, periksa apakah semua item pada Generally Necessary dan Network Drivers diaktifkan. Jika kehilangan fitur, aktifkan dengan membangun kembali kernel Anda dari sumber dan memilih modul terkait untuk dimasukkan dalam .config kernel yang sesuai. Demikian pula, jika Anda menggunakan generator konfigurasi kernel seperti defconfig atau menuconfig, temukan dan aktifkan fitur masing-masing dan bangun kembali kernel Anda sesuai dengan sesuai. Setelah Anda menyebarkan kernel yang baru diubah, jalankan skrip check-config lagi untuk memverifikasi bahwa semua fitur yang diperlukan berhasil diaktifkan.

Mengonfigurasi runtime IoT Edge

Daemon keamanan IoT Edge menyediakan dan mempertahankan standar keamanan di perangkat IoT Edge. Daemon dimulai pada setiap boot dan bootstrap perangkat dengan memulai sisa runtime IoT Edge.

Langkah-langkah di bagian ini mewakili proses umum untuk memasang versi terbaru pada perangkat yang memiliki koneksi internet. Jika Anda perlu menginstal versi tertentu, seperti versi pra-rilis, atau perlu menginstal saat offline, ikuti langkah-langkah penginstalan versi Offline atau versi tertentu nanti di artikel ini.

Pasang IoT Edge versi 1.1.* bersama dengan paket libiothsm-std:

sudo apt-get update; \
  sudo apt-get install iotedge

Catatan

IoT Edge versi 1.1 merupakan cabang dukungan jangka panjang dari IoT Edge. Jika Anda menjalankan versi yang lebih lama, kami sarankan memasang atau memperbarui ke patch terbaru karena versi yang lebih lama tidak lagi didukung.

Menentukan perangkat dengan identitas cloud-nya

Karena saat ini mesin kontainer dan runtime IoT Edge telah dipasang pada perangkat Anda, Anda sudah siap untuk langkah berikutnya, yaitu menyiapkan perangkat dengan identitas cloudnya dan informasi autentikasinya.

Buka file konfigurasi pada perangkat IoT Edge.

sudo nano /etc/iotedge/config.yaml

Temukan konfigurasi provisi file dan batalkan Konfigurasi penyediaan Manual menggunakan bagian string koneksi, jika belum dibatalkan.

# Manual provisioning configuration using a connection string
provisioning:
source: "manual"
device_connection_string: "ADD_DEVICE_CONNECTION_STRING_HERE"

Perbarui nilai device_connection_string dengan string koneksi dari perangkat IoT Edge Anda. Pastikan bagian provisi lainnya dikomentari. Pastikan provisi: baris tidak memiliki spasi sebelumnya dan item berlapis diindentasi oleh dua spasi.

Untuk menempelkan konten clipboard ke Nano Shift+Right Click atau tekan Shift+Insert.

Simpan dan tutup file.

CTRL + X, , YEnter

Setelah memasukkan informasi provisi ke dalam file konfigurasi, hidupkan ulang daemon:

sudo systemctl restart iotedge

Memverifikasi konfigurasi yang berhasil

Pastikan bahwa runtime berhasil dipasang dan dikonfigurasi pada perangkat IoT Edge Anda.

Tip

Anda memerlukan hak istimewa yang lebih tinggi untuk menjalankan perintah iotedge. Setelah Anda keluar dari komputer Anda dan masuk kembali pertama kali setelah menginstal runtime IoT Edge, izin Anda akan diperbarui secara otomatis. Sampai saat itu, gunakan sudo di depan perintah.

Periksa untuk melihat layanan sistem IoT Edge sedang berjalan.

sudo systemctl status iotedge

Jika Anda perlu memecahkan masalah layanan, ambil log layanan.

journalctl -u iotedge

Gunakan alat check untuk memverifikasi konfigurasi dan status koneksi perangkat.

sudo iotedge check

Tip

Selalu gunakan sudo untuk menjalankan alat pemeriksaan, bahkan setelah izin Anda diperbarui. Alat ini membutuhkan hak istimewa yang ditingkatkan untuk mengakses file konfigurasi untuk memverifikasi status konfigurasi.

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.

Lihat semua modul yang berjalan di perangkat IoT Edge Anda. Saat layanan dimulai untuk pertama kalinya, Anda hanya akan melihat modul edgeAgent yang berjalan. Modul edgeAgent berjalan secara default dan membantu memasang dan memulai modul tambahan yang Anda sebarkan ke perangkat Anda.

sudo iotedge list

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

Penginstalan versi offline atau versi spesifik (opsional)

Langkah-langkah di bagian ini adalah untuk skenario yang tidak dicakup oleh langkah-langkah penginstalan standar. Ini mungkin termasuk:

  • Memasang IoT Edge saat offline
  • Memasang versi RC

Gunakan langkah-langkah di bagian ini jika Anda ingin menginstal versi tertentu dari runtime Azure IoT Edge yang tidak tersedia melalui manajer paket Anda. Daftar paket Microsoft hanya berisi sekumpulan terbatas versi dan sub-versi terbarunya, jadi langkah-langkah ini adalah untuk siapa saja yang ingin menginstal versi lama atau versi RC.

Dengan menggunakan perintah curl, Anda bisa menargetkan file komponen langsung dari repositori IoT Edge GitHub.

  1. Navigasikan ke rilis Azure IoT Edge, dan temukan versi rilis yang ingin Anda targetkan.

  2. Perluas bagian Aset untuk versi tersebut.

  3. Setiap rilis harus memiliki file baru untuk daemon keamanan IoT Edge dan hsmlib. Jika Anda akan menginstal IoT Edge pada perangkat offline, unduh file-file ini sebelumnya. Jika tidak, gunakan perintah berikut ini untuk memperbarui komponen tersebut.

    1. Temukan file libiothsm-std yang cocok dengan arsitektur perangkat IoT Edge Anda. Klik kanan tautan file dan salin alamat tautan.

    2. Gunakan tautan yang disalin dalam perintah berikut untuk menginstal versi hsmlib tersebut:

      curl -L <libiothsm-std_link> -o libiothsm-std.deb && sudo apt-get install ./libiothsm-std.deb
      
    3. Temukan file iotedge yang cocok dengan arsitektur perangkat IoT Edge Anda. Klik kanan tautan file dan salin alamat tautan.

    4. Gunakan tautan yang disalin dalam perintah berikut ini untuk menginstal daemon keamanan IoT Edge tersebut.

      curl -L iotedge_link_here -o iotedge.deb && sudo apt-get install ./iotedge.deb
      

Karena saat ini mesin kontainer dan runtime IoT Edge telah dipasang pada perangkat Anda, Anda sudah siap untuk langkah berikutnya, yaitu Memprovisi perangkat dengan identitas cloud-nya.

Mencopot pemasangan IoT Edge

Jika Anda ingin mencopot pemasangan IoT Edge dari perangkat Anda, gunakan perintah berikut.

Hapus runtime{i>

sudo apt-get autoremove iotedge

Ketika runtime IoT Edge dihapus, kontainer apa pun yang dibuatnya akan dihentikan tetapi masih ada di perangkat Anda. Lihat semua kontainer untuk melihat mana yang masih tersisa.

sudo docker ps -a

Hapus kontainer dari perangkat Anda, termasuk dua kontainer runtime.

sudo docker rm -f <container name>

Terakhir, hapus runtime kontainer dari perangkat Anda.

sudo apt-get autoremove --purge moby-engine