إنشاء أجهزة IoT Edge وتوفيرها على نطاق واسع على Linux باستخدام مفتاح متماثل

ينطبق على:yes icon IoT Edge 1.1 الإصدارات الأخرى:IoT Edge 1.2

ينطبق على:yes icon IoT Edge 1.2 الإصدارات الأخرى:IoT Edge 1.1

توفر هذه المقالة إرشادات شاملة للتزويد التلقائي لجهاز واحد أو أكثر من أجهزة Linux IoT Edge باستخدام مفاتيح متماثلة. يمكنك توفير أجهزة Azure IoT Edge تلقائيا باستخدام خدمة توفير جهاز Azure IoT Hub (DPS). إذا لم تكن معتادا على عملية التوفير التلقائي، فراجع نظرة عامة على التوفير قبل المتابعة.

المهام هي كما يلي:

  1. إنشاء إما تسجيل فردي لجهاز واحد أو تسجيل مجموعة لمجموعة من الأجهزة.
  2. تثبيت وقت تشغيل IoT Edge والاتصال بمركز IoT.

تلميح

للحصول على تجربة مبسطة، جرب أداة تكوين Azure IoT Edge. تقوم أداة سطر الأوامر هذه، الموجودة حاليا في المعاينة العامة، بتثبيت IoT Edge على جهازك وتوفيره باستخدام DPS وإثبات المفتاح المتماثل.

إثبات المفتاح المتماثل هو نهج بسيط لمصادقة جهاز مع مثيل خدمة توفير الجهاز. يمثل أسلوب الإثبات هذا تجربة "Hello world" للمطورين الجدد في تزويد الجهاز، أو الذين ليس لديهم متطلبات أمان صارمة. يعد إثبات الجهاز باستخدام شهادات TPM أو X.509 أكثر أمانا، ويجب استخدامه لمتطلبات أمان أكثر صرامة.

المتطلبات الأساسية

موارد السحابة

  • مركز IoT نشط
  • مثيل لخدمة توفير جهاز IoT Hub في Azure، مرتبط بمركز IoT الخاص بك

متطلبات الجهاز

جهاز Linux فعلي أو ظاهري ليكون جهاز IoT Edge.

ستحتاج إلى تعريف معرفتسجيل فريد لتحديد كل جهاز. يمكنك استخدام عنوان MAC أو الرقم التسلسلي أو أي معلومات فريدة من الجهاز. على سبيل المثال، يمكنك استخدام مجموعة من عنوان MAC والرقم التسلسلي الذي يشكل السلسلة التالية لمعرف التسجيل: sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6. الأحرف الصالحة هي أبجدية رقمية صغيرة والشرطة (-).

إنشاء تسجيل DPS

إنشاء تسجيل لتوفير جهاز واحد أو أكثر من خلال DPS.

إذا كنت تبحث عن توفير جهاز IoT Edge واحد، فنشئ تسجيلا فرديا. إذا كنت بحاجة إلى توفير أجهزة متعددة، فاتبع الخطوات لإنشاء تسجيل مجموعة DPS.

عند إنشاء تسجيل في DPS، يكون لديك الفرصة للإعلان عن حالة الجهاز المزدوج الأولية. في الجهاز المزدوج، يمكنك تعيين علامات لتجميع الأجهزة حسب أي مقياس تحتاجه في الحل الخاص بك، مثل المنطقة أو البيئة أو الموقع أو نوع الجهاز. يتم استخدام هذه العلامات لإنشاء عمليات نشر تلقائية.

لمزيد من المعلومات حول التسجيلات في خدمة توفير الجهاز، راجع كيفية إدارة عمليات تسجيل الجهاز.

إنشاء تسجيل فردي ل DPS

تلميح

الخطوات الواردة في هذه المقالة مخصصة لمدخل Azure، ولكن يمكنك أيضا إنشاء عمليات تسجيل فردية باستخدام Azure CLI. لمزيد من المعلومات، راجع تسجيل az iot dps. كجزء من الأمر CLI، استخدم العلامة الممكنة للحافة لتحديد أن التسجيل لجهاز IoT Edge.

  1. في مدخل Microsoft Azure، انتقل إلى مثيل خدمة توفير جهاز IoT Hub.

  2. ضمن الإعدادات، حدد إدارة التسجيلات.

  3. حدد Add individual enrollment ثم أكمل الخطوات التالية لتكوين التسجيل:

    1. بالنسبة إلى آلية، حدد مفتاح متماثل.

    2. توفير معرف تسجيل فريد لجهازك.

    3. بشكل اختياري، قم بتوفير معرف جهاز IoT Hub لجهازك. يمكنك استخدام معرفات الجهاز لاستهداف جهاز فردي لنشر الوحدة النمطية. إذا لم توفر معرف جهاز، يتم استخدام معرف التسجيل.

    4. حدد True للإعلان عن أن التسجيل لجهاز IoT Edge.

    5. اختياريا، أضف قيمة علامة إلى حالة الجهاز المزدوج الأولية. يمكنك استخدام العلامات لاستهداف مجموعات من الأجهزة لنشر الوحدة النمطية. على سبيل المثال:

      {
         "tags": {
            "environment": "test"
         },
         "properties": {
            "desired": {}
         }
      }
      
    6. حدد ⁧⁩حفظ⁧⁩.

  4. انسخ قيمة المفتاح الأساسي للتسجيل الفردي لاستخدامها عند تثبيت وقت تشغيل IoT Edge.

الآن بعد وجود تسجيل لهذا الجهاز، يمكن لوقت تشغيل IoT Edge توفير الجهاز تلقائيا أثناء التثبيت.

تثبيت IoT Edge

في هذا القسم، يمكنك إعداد جهاز Linux الظاهري أو الجهاز الفعلي ل IoT Edge. بعد ذلك، يمكنك تثبيت IoT Edge.

أولا، قم بتشغيل الأوامر التالية لإضافة مستودع الحزمة ثم إضافة مفتاح توقيع حزمة Microsoft إلى قائمة المفاتيح الموثوق بها.

يمكن إجراء التثبيت باستخدام بعض الأوامر. افتح محطة طرفية ثم قم بتشغيل الأوامر التالية:

  • 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
    

ملاحظة

تخضع حزم برامج Azure IoT Edge لشروط الترخيص الموجودة في كل حزمة LICENSE (usr/share/doc/{package-name}أو الدليل). اقرأ شروط الترخيص قبل استخدام الحزمة. تركيب واستخدامك للحزمة يشكل قبولك لهذه الشروط. إذا لم توافق على شروط الترخيص، فلا تستخدم هذه الحزمة.

ثبِّت محرك حاوية

تعتمد Azure IoT Edge على وقت تشغيل حاوية متوافق مع OCI. بالنسبة لسيناريوهات الإنتاج، نوصي باستخدام محرك Moby. محرك Moby هو محرك الحاوية الوحيد المدعوم رسميا مع IoT Edge. تتوافق صور حاوية Docker CE/EE مع وقت تشغيل Moby.

ثبِّت محرك Moby.

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

بمجرد تثبيت محرك Moby بنجاح، قم بتكوينه لاستخدام local برنامج تشغيل التسجيل كآلية تسجيل. لمعرفة المزيد حول تكوين التسجيل، راجع قائمة التحقق من توزيع الإنتاج.

  • إنشاء ملف تكوين Docker daemon أو فتحه في /etc/docker/daemon.json.

  • قم بتعيين برنامج تشغيل التسجيل الافتراضي إلى local برنامج تشغيل التسجيل كما هو موضح في المثال أدناه.

       {
          "log-driver": "local"
       }
    
  • أعد تشغيل محرك الحاوية حتى تسري التغييرات.

    تلميح

    إذا تلقيت أخطاء عند تثبيت محرك حاوية Moby، فتحقق من نواة Linux لتوافق Moby. تشحن بعض الشركات المُصنّعة للأجهزة المضمنة صور الأجهزة التي تحتوي على أنوية Linux مخصصة دون الميزات المطلوبة لتوافق محرك الحاوية. شغَّل الأمر التالي، والذي يستخدم البرنامج النصي check-config الذي يزوده Moby، للتحقق من تكوين kernel خاصتك:

    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
    

    في إخراج البرنامج النصي، تحقق من أن جميع العناصر الموجودة تحت Generally Necessary و Network Drivers ممكنة. إذا كنت تفتقد الميزات، فقم بتمكينها عن طريق إعادة إنشاء نواة من المصدر وتحديد الوحدات النمطية المقترنة لتضمينها في .config النواة المناسبة. وبالمثل، إذا كنت تستخدم منشئ تكوين kernel مثل defconfig أو menuconfig، فابحث عن الميزات المعنية وقم بتمكينها وأعد بناء نواة الخاص بك وفقا لذلك. بعد نشر النواة المعدلة حديثا، قم بتشغيل البرنامج النصي للتحقق من التكوين مرة أخرى للتحقق من تمكين جميع الميزات المطلوبة بنجاح.

تثبيت وقت تشغيل IoT Edge

يقدم برنامج الأمان الخفي IoT Edge معايير الأمان على جهاز IoT Edge ويحافظ عليها. يبدأ البرنامج الخفي في كل عملية تمهيد ويمهد الجهاز عن طريق بدء بقية وقت تشغيل IoT Edge.

تمثل الخطوات الواردة في هذا القسم العملية النموذجية لتثبيت أحدث إصدار على جهاز متصل بالإنترنت. إذا كنت بحاجة إلى تثبيت إصدار معين، مثل إصدار ما قبل الإصدار، أو تحتاج إلى التثبيت أثناء عدم الاتصال، فاتبع خطوات تثبيت الإصدار غير المتصل أو المحدد لاحقا في هذه المقالة.

تثبيت إصدار IoT Edge 1.1.* مع حزمة libiothsm-std :

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

ملاحظة

الإصدار 1.1 من IoT Edge هو فرع الدعم طويل الأجل ل IoT Edge. إذا كنت تقوم بتشغيل إصدار أقدم، نوصي بالتثبيت أو التحديث إلى أحدث تصحيح لأن الإصدارات القديمة لم تعد مدعومة.

توفر خدمة IoT Edge معايير الأمان وتحافظ عليها على جهاز IoT Edge. تبدأ الخدمة على كل تمهيد وتشغل الجهاز عن طريق بدء بقية وقت تشغيل IoT Edge.

تم تقديم خدمة هوية IoT مع الإصدار 1.2 من IoT Edge. تعالج هذه الخدمة توفير الهوية وإدارتها ل IoT Edge ومكونات الجهاز الأخرى التي تحتاج إلى الاتصال ب IoT Hub.

تمثل الخطوات الواردة في هذا القسم العملية النموذجية لتثبيت أحدث إصدار على جهاز متصل بالإنترنت. إذا كنت بحاجة إلى تثبيت إصدار معين، مثل إصدار ما قبل الإصدار، أو تحتاج إلى التثبيت أثناء عدم الاتصال، فاتبع خطوات تثبيت الإصدار غير المتصل أو المحدد لاحقا في هذه المقالة.

ملاحظة

توضح لك الخطوات الواردة في هذا القسم كيفية تثبيت الإصدار 1.2 من IoT Edge.

إذا كان لديك بالفعل جهاز IoT Edge يعمل بإصدار قديم وتريد الترقية إلى 1.2، فاستخدم الخطوات الواردة في تحديث البرنامج الخفي للأمان ووقت التشغيل ل IoT Edge. يختلف الإصدار 1.2 بشكل كاف عن الإصدارات السابقة من IoT Edge بحيث يلزم اتخاذ خطوات محددة للترقية.

تثبيت أحدث إصدار من IoT Edge وحزمة خدمة هوية IoT:

sudo apt-get update; \
  sudo apt-get install aziot-edge 

لسرد الإصدارات الأخرى من IoT Edge وخدمة هوية IoT المتوفرة، استخدم الأمر التالي:

apt list -a aziot-edge aziot-identity-service

تزويد الجهاز بهويته السحابية

بمجرد تثبيت وقت التشغيل على جهازك، قم بتكوين الجهاز بالمعلومات التي يستخدمها للاتصال بخدمة توفير الجهاز وIoT Hub.

جهز المعلومات التالية:

  • قيمة نطاق معرف DPS
  • معرف تسجيل الجهاز الذي أنشأته
  • إما المفتاح الأساسي من تسجيل فردي أو مفتاح مشتق للأجهزة التي تستخدم تسجيل مجموعة.
  1. افتح ملف التكوين على جهاز IoT Edge.

    sudo nano /etc/iotedge/config.yaml
    
  2. ابحث عن قسم تكوينات التوفير في الملف. قم بإلغاء تعليق خطوط توفير مفتاح DPS المتماثل، وتأكد من التعليق على أي خطوط تزويد أخرى.

    provisioning: يجب ألا يحتوي السطر على مسافة بيضاء سابقة، ويجب مسافة بادئة للعناصر المتداخلة بمسافة مسافة اثنين.

    # DPS TPM provisioning configuration
    provisioning:
      source: "dps"
      global_endpoint: "https://global.azure-devices-provisioning.net"
      scope_id: "PASTE_YOUR_SCOPE_ID_HERE"
      attestation:
        method: "symmetric_key"
        registration_id: "PASTE_YOUR_REGISTRATION_ID_HERE"
        symmetric_key: "PASTE_YOUR_PRIMARY_KEY_OR_DERIVED_KEY_HERE"
    #  always_reprovision_on_startup: true
    #  dynamic_reprovisioning: false
    
  3. قم بتحديث قيم scope_idو registration_idو symmetric_key بمعلومات DPS والجهاز.

  4. اختياريا، استخدم الأسطر always_reprovision_on_startup أو dynamic_reprovisioning لتكوين سلوك إعادة توفير جهازك. إذا تم تعيين جهاز لإعادة التوفير عند بدء التشغيل، فسيحاول دائما تزويده ب DPS أولا ثم الرجوع إلى النسخ الاحتياطي للتوفير إذا فشل ذلك. إذا تم تعيين جهاز لإعادة التوفير نفسه ديناميكيا، فسيعاد تشغيل IoT Edge (وجميع الوحدات النمطية) وإعادة التوفير إذا تم الكشف عن حدث إعادة توفير، مثل ما إذا تم نقل الجهاز من IoT Hub إلى آخر. على وجه التحديد، يتحقق bad_credential IoT Edge من SDK أو device_disabled الأخطاء منه للكشف عن حدث إعادة التوفير. لتشغيل هذا الحدث يدويا، قم بتعطيل الجهاز في IoT Hub. لمزيد من المعلومات، راجع مفاهيم إعادة توفير جهاز IoT Hub.

  5. أعد تشغيل وقت تشغيل IoT Edge بحيث يلتقط جميع تغييرات التكوين التي أجريتها على الجهاز.

    sudo systemctl restart iotedge
    
  1. إنشاء ملف تكوين لجهازك استنادا إلى ملف قالب يتم توفيره كجزء من تثبيت IoT Edge.

    sudo cp /etc/aziot/config.toml.edge.template /etc/aziot/config.toml
    
  2. افتح ملف التكوين على جهاز IoT Edge.

    sudo nano /etc/aziot/config.toml
    
  3. ابحث عن قسم Provisioning في الملف. قم بإلغاء تعليق خطوط توفير DPS باستخدام مفتاح متماثل، وتأكد من التعليق على أي خطوط تزويد أخرى.

    # DPS provisioning with symmetric key
    [provisioning]
    source = "dps"
    global_endpoint = "https://global.azure-devices-provisioning.net"
    id_scope = "PASTE_YOUR_SCOPE_ID_HERE"
    
    [provisioning.attestation]
    method = "symmetric_key"
    registration_id = "PASTE_YOUR_REGISTRATION_ID_HERE"
    
    symmetric_key = { value = "PASTE_YOUR_PRIMARY_KEY_OR_DERIVED_KEY_HERE" }
    
  4. قم بتحديث قيم id_scopeو registration_idو symmetric_key بمعلومات DPS والجهاز.

    يمكن أن تقبل معلمة المفتاح المتماثل قيمة مفتاح مضمن أو URI ملف أو URI PKCS#11. قم بإلغاء التعليق على سطر مفتاح متماثل واحد فقط، استنادا إلى التنسيق الذي تستخدمه.

    إذا كنت تستخدم أي معرفات URI ل PKCS#11، فابحث عن قسم PKCS#11 في ملف التكوين وقم بتوفير معلومات حول تكوين PKCS#11.

  5. احفظ الملف config.toml وأغلقه.

  6. تطبيق تغييرات التكوين التي أجريتها على IoT Edge.

    sudo iotedge config apply
    

التحقق من التثبيت الناجح

إذا بدأ وقت التشغيل بنجاح، يمكنك الانتقال إلى IoT Hub والبدء في نشر وحدات IoT Edge النمطية على جهازك.

يمكنك التحقق من استخدام التسجيل الفردي الذي قمت بإنشائه في خدمة توفير الجهاز. انتقل إلى مثيل خدمة توفير الجهاز في مدخل Microsoft Azure. افتح تفاصيل التسجيل للتسجيل الفردي الذي قمت بإنشائه. لاحظ أنه تم تعيين حالة التسجيل وإدراج معرف الجهاز.

استخدم الأوامر التالية على جهازك للتحقق من تثبيت IoT Edge وبدء تشغيله بنجاح.

تحقق من حالة خدمة IoT Edge.

systemctl status iotedge

فحص سجلات الخدمة.

journalctl -u iotedge --no-pager --no-full

سرد الوحدات النمطية قيد التشغيل.

iotedge list

تحقق من حالة خدمة IoT Edge.

sudo iotedge system status

فحص سجلات الخدمة.

sudo iotedge system logs

سرد الوحدات النمطية قيد التشغيل.

sudo iotedge list

الخطوات التالية

تتيح لك عملية تسجيل خدمة توفير الجهاز تعيين معرف الجهاز وعلامات الجهاز المزدوجة في نفس الوقت الذي تقوم فيه بتوفير الجهاز الجديد. يمكنك استخدام هذه القيم لاستهداف أجهزة فردية أو مجموعات من الأجهزة باستخدام الإدارة التلقائية للأجهزة. تعرف على كيفية نشر ومراقبة وحدات IoT Edge على نطاق واسع باستخدام مدخل Microsoft Azure أو باستخدام Azure CLI.