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

ينطبق على:علامة اختيار IoT Edge 1.5 IoT Edge 1.5 علامة اختيار IoT Edge 1.4 IoT Edge 1.4

هام

IoT Edge 1.5 LTS وIoT Edge 1.4 LTS هي إصدارات مدعومة. IoT Edge 1.4 LTS هو نهاية العمر الافتراضي في 12 نوفمبر 2024. إذا كنت تستخدم إصدارا سابقا، فشاهد تحديث IoT Edge.

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

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

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

تلميح

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

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

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

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

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

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

جهاز 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 إلى قائمة المفاتيح الموثوق بها.

هام

في 30 يونيو 2022 تم إيقاف Raspberry Pi OS Stretch من قائمة دعم نظام التشغيل من المستوى 1. لتجنب الثغرات الأمنية المحتملة، قم بتحديث نظام التشغيل المضيف إلى Bullseye.

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

  • 22.04:

    wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb
    
  • 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
    

لمزيد من المعلومات حول إصدارات نظام التشغيل، راجع الأنظمة الأساسية المدعومة من Azure IoT Edge.

إشعار

تخضع حزم برامج 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

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

توضح لك الخطوات التالية كيفية تكوين الحاوية لاستخدام local برنامج تشغيل التسجيل كآلية تسجيل.

  1. إنشاء ملف تكوين Docker daemon الموجود أو تحريره

    sudo nano /etc/docker/daemon.json
    
  2. قم بتعيين برنامج تشغيل التسجيل الافتراضي إلى local برنامج تشغيل التسجيل كما هو موضح في المثال.

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

    sudo systemctl restart docker
    

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

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

إشعار

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

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

تلميح

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

تثبيت أحدث إصدار من IoT Edge وحزمة خدمة هوية IoT (إذا لم تكن محدثا بالفعل):

  • 22.04:

    sudo apt-get update; \
       sudo apt-get install aziot-edge
    
  • 20.04:

    sudo apt-get update; \
       sudo apt-get install aziot-edge defender-iot-micro-agent-edge
    

تتضمن الحزمة الاختيارية defender-iot-micro-agent-edge عامل Microsoft Defender لأمان IoT الصغير الذي يوفر رؤية نقطة النهاية في إدارة وضع الأمان والثغرات الأمنية والكشف عن التهديدات وإدارة الأسطول والمزيد لمساعدتك على تأمين أجهزة IoT Edge. يوصى بتثبيت العامل الصغير مع عامل Edge لتمكين مراقبة الأمان وتصلب أجهزة Edge. لمعرفة المزيد حول Microsoft Defender for IoT، راجع ما هو Microsoft Defender for IoT لمنشئي الأجهزة.

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

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

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

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

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

sudo cp /etc/aziot/config.toml.edge.template /etc/aziot/config.toml

افتح ملف التكوين على جهاز IoT Edge.

sudo nano /etc/aziot/config.toml
  1. ابحث عن قسم 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"
    
    # Uncomment to send a custom payload during DPS registration
    # payload = { uri = "PATH_TO_JSON_FILE" }
    
    [provisioning.attestation]
    method = "symmetric_key"
    registration_id = "PASTE_YOUR_REGISTRATION_ID_HERE"
    
    symmetric_key = { value = "PASTE_YOUR_PRIMARY_KEY_OR_DERIVED_KEY_HERE" }
    
    # auto_reprovisioning_mode = Dynamic
    
  2. قم بتحديث قيم id_scopeو registration_idو symmetric_key بمعلومات DPS والجهاز.

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

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

    لمزيد من المعلومات حول إعدادات تكوين التوفير، راجع تكوين إعدادات جهاز IoT Edge.

  3. اختياريا، ابحث عن قسم وضع إعادة التزويد التلقائي في الملف. استخدم المعلمة auto_reprovisioning_mode لتكوين سلوك إعادة توفير جهازك. ديناميكي - إعادة توفير عندما يكتشف الجهاز أنه قد تم نقله من مركز IoT إلى آخر. هذا هو الوضع الافتراضي. AlwaysOnStartup - إعادة التوفير عند إعادة تشغيل الجهاز أو حدوث عطل يؤدي إلى إعادة تشغيل البرامج الخفية. OnErrorOnly - لا تقم أبدا بتشغيل إعادة توفير الجهاز تلقائيا. يحتوي كل وضع على جهاز احتياطي ضمني لإعادة توفير الجهاز إذا كان الجهاز غير قادر على الاتصال ب IoT Hub أثناء توفير الهوية بسبب أخطاء الاتصال. لمزيد من المعلومات، راجع مفاهيم إعادة توفير جهاز IoT Hub.

  4. اختياريا، قم بإلغاء تعليق المعلمة payload لتحديد المسار إلى ملف JSON محلي. يتم إرسال محتويات الملف إلى DPS كبيانات إضافية عند تسجيل الجهاز. هذا مفيد للتخصيص المخصص. على سبيل المثال، إذا كنت تريد تخصيص أجهزتك استنادا إلى معرف نموذج IoT أجهزة التوصيل و التشغيل دون تدخل بشري.

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

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

    sudo iotedge config apply
    

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

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

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

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

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

sudo iotedge system status

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

sudo iotedge system logs

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

sudo iotedge list

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

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