إنشاء وتوفير جهاز 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 وتوفيره، بما في ذلك تثبيت IoT Edge.

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

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

  • مفاتيح متماثلة: عند إنشاء هوية جهاز جديدة في IoT Hub، تنشئ الخدمة مفتاحين. يمكنك وضع أحد المفاتيح على الجهاز، ويقدم المفتاح إلى IoT Hub عند المصادقة.

    أسلوب المصادقة هذا أسرع للبدء، ولكن ليس آمنا.

  • X.509 موقع ذاتيا: يمكنك إنشاء شهادتي هوية X.509 ووضعهما على الجهاز. عند إنشاء هوية جهاز جديدة في IoT Hub، فإنك توفر بصمات إبهام من كلتا الشهادتين. عندما يصادق الجهاز على IoT Hub، فإنه يقدم شهادة واحدة ويتحقق IoT Hub من أن الشهادة تطابق بصمة الإبهام الخاصة به.

    أسلوب المصادقة هذا أكثر أمانا ويوصى به لسيناريوهات الإنتاج.

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

ملاحظة

إذا كان لديك العديد من الأجهزة لإعدادها ولا تريد توفير كل منها يدويا، فاستخدم إحدى المقالات التالية لمعرفة كيفية عمل IoT Edge مع خدمة توفير جهاز IoT Hub:

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

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

أدوات إدارة الأجهزة

يمكنك استخدام مدخل Microsoft Azure أو Visual Studio Code أو Azure CLI لخطوات تسجيل جهازك. كل أداة مساعدة لها متطلباتها الأساسية الخاصة:

مركز IoT مجاني أو قياسي في اشتراك Azure الخاص بك.

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

جهاز X64 أو ARM32 أو ARM64 Linux.

تنشر Microsoft حزم التثبيت لمجموعة متنوعة من أنظمة التشغيل.

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

تسجيل جهازك

يمكنك استخدام مدخل Microsoft Azure أو Visual Studio Code أو Azure CLI لتسجيل جهازك، اعتمادا على تفضيلك.

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

  1. سجل الدخول إلى مدخل Microsoft Azure وانتقل إلى مركز IoT.

  2. في الجزء الأيمن، حدد IoT Edge من القائمة، ثم حدد إضافة جهاز IoT Edge.

    Add an IoT Edge device from the Azure portal

  3. في صفحة إنشاء جهاز ، قم بتوفير المعلومات التالية:

    • إنشاء معرف جهاز وصفي. دون ملاحظة عن معرف الجهاز هذا، حيث ستستخدمه لاحقا.
    • اختر مفتاح المحتوي كنوع المصادقة.
    • استخدم الإعدادات الافتراضية لإنشاء مفاتيح المصادقة تلقائيا وتوصيل الجهاز الجديد بمركزك.
  4. حدد ⁧⁩حفظ⁧⁩.

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

عرض الأجهزة المسجلة واسترداد معلومات التوفير

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

يتم سرد جميع الأجهزة الممكنة للحافة التي تتصل بمركز IoT في صفحة IoT Edge .

Use the Azure portal to view all IoT Edge devices in your IoT hub

عندما تكون جاهزا لإعداد جهازك، فأنت بحاجة إلى سلسلة الاتصال التي تربط جهازك الفعلي بهويته في مركز IoT.

تحتوي الأجهزة التي تصادق باستخدام مفاتيح متماثلة على سلاسل الاتصال الخاصة بها متاحة للنسخ في المدخل.

  1. من صفحة IoT Edge في المدخل، انقر فوق معرف الجهاز من قائمة أجهزة IoT Edge.
  2. انسخ قيمة سلسلة الاتصال الأساسية أو سلسلة الاتصال الثانوية.

تثبيت 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 kernel ل 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، فابحث عن الميزات المعنية وقم بتمكينها وأعد إنشاء النواة وفقا لذلك. بعد نشر النواة المعدلة حديثا، قم بتشغيل البرنامج النصي check-config مرة أخرى للتحقق من تمكين جميع الميزات المطلوبة بنجاح.

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

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

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

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

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

ملاحظة

IoT Edge الإصدار 1.1 هو فرع الدعم طويل الأجل من 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 Edge على جهازك، فأنت جاهز للخطوة التالية، وهي إعداد الجهاز مع هويته السحابية ومعلومات المصادقة الخاصة به.

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

sudo nano /etc/iotedge/config.yaml

ابحث عن تكوينات التزويد للملف والغِ تعليق القسم تكوين التزويد اليدوي باستخدام سلسلة اتصال إذا لم يكن التعليق عليه ملغي مسبقًا.

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

حدِّث القيمة device_connection_string مع سلسلة الاتصال من جهاز IoT Edge خاصتك. تأكد من التعليق على أي مقاطع توفير أخرى. تأكد من أن التزويد: السطر ليس له مسافة بيضاء سابقة وأن العناصر المتداخلة يتم مسافة بادئة بمسافة مسافة بادئة بمسافة اثنين.

للصق محتويات الحافظة في Nano Shift+Right Click أو اضغط Shift+Insertعلى .

حفظ وإغلاق الملف.

CTRL + X, Y, Enter

بعد إدخال معلومات التزويد في ملف التكوين، أعِد تشغيل البرنامج الخفي:

sudo systemctl restart iotedge

يمكنك تكوين جهاز IoT Edge بسرعة باستخدام مصادقة المفتاح المتماثل باستخدام الأمر التالي:

sudo iotedge config mp --connection-string 'PASTE_DEVICE_CONNECTION_STRING_HERE'

iotedge config mp يقوم الأمر بإنشاء ملف تكوين على الجهاز وإدخال سلسلة الاتصال في الملف.

تطبيق تغييرات التكوين.

sudo iotedge config apply

إذا كنت تريد رؤية ملف التكوين، يمكنك فتحه:

sudo nano /etc/aziot/config.toml

تحقق من التكوين الناجح

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

تلميح

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

تحقق من تشغيل خدمة نظام IoT Edge.

sudo systemctl status iotedge
sudo iotedge system status

استجابة الحالة الناجحة هي Ok.

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

journalctl -u iotedge
sudo iotedge system logs

check استخدم الأداة للتحقق من التكوين وحالة الاتصال للجهاز.

sudo iotedge check

تلميح

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

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

sudo iotedge list

عند إنشائك جهاز IoT Edge جديدًا، فإنه سيعرض رمز الحالة 417 -- The device's deployment configuration is not set في مدخل Microsoft Azure. هذه الحالة طبيعية، وتعني أن الجهاز جاهز لتلقي وحدة نشر.

تثبيت إصدار غير متصل أو محدد (اختياري)

الخطوات الواردة في هذا القسم مخصصة للسيناريوهات التي لا تغطيها خطوات التثبيت القياسية. قد يشمل ذلك ما يلي:

  • تثبيت IoT Edge أثناء عدم الاتصال
  • تثبيت إصدار مرشح للإصدار

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

باستخدام أوامر curl، يمكنك استهداف ملفات المكونات مباشرة من مستودع GitHub IoT Edge.

  1. انتقل إلى إصدارات Azure IoT Edge، وابحث عن إصدار الإصدار الذي تريد استهدافه.

  2. قم بتوسيع قسم Assets لهذا الإصدار.

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

    1. ابحث عن ملف libiothsm-std الذي يتطابق مع بنية جهاز IoT Edge. انقر بزر الماوس الأيمن فوق ارتباط الملف وانسخ عنوان الارتباط.

    2. استخدم الارتباط المنسخ في الأمر التالي لتثبيت هذا الإصدار من hsmlib:

      curl -L libiothsm-std_link_here -o libiothsm-std.deb && sudo apt-get install ./libiothsm-std.deb
      
    3. ابحث عن ملف iotedge الذي يتطابق مع بنية جهاز IoT Edge. انقر بزر الماوس الأيمن فوق ارتباط الملف وانسخ عنوان الارتباط.

    4. استخدم الارتباط المنسخ في الأمر التالي لتثبيت هذا الإصدار من البرنامج الخفي لأمان IoT Edge.

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

ملاحظة

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

  1. انتقل إلى إصدارات Azure IoT Edge، وابحث عن إصدار الإصدار الذي تريد استهدافه.

  2. قم بتوسيع قسم Assets لهذا الإصدار.

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

    1. ابحث عن ملف aziot-identity-service الذي يطابق بنية جهاز IoT Edge. انقر بزر الماوس الأيمن فوق ارتباط الملف وانسخ عنوان الارتباط.

    2. استخدم الارتباط المنسخ في الأمر التالي لتثبيت هذا الإصدار من خدمة الهوية:

      curl -L <identity service link> -o aziot-identity-service.deb && sudo apt-get install ./aziot-identity-service.deb
      
    3. ابحث عن ملف aziot-edge الذي يطابق بنية جهاز IoT Edge. انقر بزر الماوس الأيمن فوق ارتباط الملف وانسخ عنوان الارتباط.

    4. استخدم الارتباط المنسخ في الأمر التالي لتثبيت هذا الإصدار من IoT Edge.

      curl -L <iotedge link> -o aziot-edge.deb && sudo apt-get install ./aziot-edge.deb
      

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

إلغاء تثبيت IoT Edge

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

إزالة وقت تشغيل IoT Edge.

sudo apt-get remove iotedge
sudo apt-get remove --purge aziot-edge

استخدم العلامة --purge إذا كنت تريد حذف جميع الملفات المقترنة ب IoT Edge، بما في ذلك ملفات التكوين الخاصة بك. اترك هذه العلامة إذا كنت تريد إعادة تثبيت IoT Edge واستخدام نفس معلومات التكوين في المستقبل.

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

sudo docker ps -a

احذف الحاويات من جهازك، بما في ذلك حاويتي وقت التشغيل.

sudo docker rm -f <container name>

وأخيرا، قم بإزالة وقت تشغيل الحاوية من جهازك.

sudo apt-get remove --purge moby-cli
sudo apt-get remove --purge moby-engine

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

استمر في نشر وحدات IoT Edge النمطية لمعرفة كيفية نشر الوحدات النمطية على جهازك.