إنشاء أجهزة IoT Edge وتوفيرها على نطاق واسع على Linux باستخدام مفتاح متماثل
ينطبق على:
IoT Edge 1.1 الإصدارات الأخرى:IoT Edge 1.2
ينطبق على:
IoT Edge 1.2 الإصدارات الأخرى:IoT Edge 1.1
توفر هذه المقالة إرشادات شاملة للتزويد التلقائي لجهاز واحد أو أكثر من أجهزة Linux IoT Edge باستخدام مفاتيح متماثلة. يمكنك توفير أجهزة Azure IoT Edge تلقائيا باستخدام خدمة توفير جهاز Azure IoT Hub (DPS). إذا لم تكن معتادا على عملية التوفير التلقائي، فراجع نظرة عامة على التوفير قبل المتابعة.
المهام هي كما يلي:
- إنشاء إما تسجيل فردي لجهاز واحد أو تسجيل مجموعة لمجموعة من الأجهزة.
- تثبيت وقت تشغيل IoT Edge والاتصال بمركز IoT.
تلميح
للحصول على تجربة مبسطة، جرب أداة تكوين 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.
في مدخل Microsoft Azure، انتقل إلى مثيل خدمة توفير جهاز IoT Hub.
ضمن الإعدادات، حدد إدارة التسجيلات.
حدد Add individual enrollment ثم أكمل الخطوات التالية لتكوين التسجيل:
بالنسبة إلى آلية، حدد مفتاح متماثل.
توفير معرف تسجيل فريد لجهازك.
بشكل اختياري، قم بتوفير معرف جهاز IoT Hub لجهازك. يمكنك استخدام معرفات الجهاز لاستهداف جهاز فردي لنشر الوحدة النمطية. إذا لم توفر معرف جهاز، يتم استخدام معرف التسجيل.
حدد True للإعلان عن أن التسجيل لجهاز IoT Edge.
اختياريا، أضف قيمة علامة إلى حالة الجهاز المزدوج الأولية. يمكنك استخدام العلامات لاستهداف مجموعات من الأجهزة لنشر الوحدة النمطية. على سبيل المثال:
{ "tags": { "environment": "test" }, "properties": { "desired": {} } }حدد حفظ.
انسخ قيمة المفتاح الأساسي للتسجيل الفردي لاستخدامها عند تثبيت وقت تشغيل 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.deb18.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
- معرف تسجيل الجهاز الذي أنشأته
- إما المفتاح الأساسي من تسجيل فردي أو مفتاح مشتق للأجهزة التي تستخدم تسجيل مجموعة.
افتح ملف التكوين على جهاز IoT Edge.
sudo nano /etc/iotedge/config.yamlابحث عن قسم تكوينات التوفير في الملف. قم بإلغاء تعليق خطوط توفير مفتاح 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قم بتحديث قيم
scope_idوregistration_idوsymmetric_keyبمعلومات DPS والجهاز.اختياريا، استخدم الأسطر
always_reprovision_on_startupأوdynamic_reprovisioningلتكوين سلوك إعادة توفير جهازك. إذا تم تعيين جهاز لإعادة التوفير عند بدء التشغيل، فسيحاول دائما تزويده ب DPS أولا ثم الرجوع إلى النسخ الاحتياطي للتوفير إذا فشل ذلك. إذا تم تعيين جهاز لإعادة التوفير نفسه ديناميكيا، فسيعاد تشغيل IoT Edge (وجميع الوحدات النمطية) وإعادة التوفير إذا تم الكشف عن حدث إعادة توفير، مثل ما إذا تم نقل الجهاز من IoT Hub إلى آخر. على وجه التحديد، يتحققbad_credentialIoT Edge من SDK أوdevice_disabledالأخطاء منه للكشف عن حدث إعادة التوفير. لتشغيل هذا الحدث يدويا، قم بتعطيل الجهاز في IoT Hub. لمزيد من المعلومات، راجع مفاهيم إعادة توفير جهاز IoT Hub.أعد تشغيل وقت تشغيل IoT Edge بحيث يلتقط جميع تغييرات التكوين التي أجريتها على الجهاز.
sudo systemctl restart iotedge
إنشاء ملف تكوين لجهازك استنادا إلى ملف قالب يتم توفيره كجزء من تثبيت IoT Edge.
sudo cp /etc/aziot/config.toml.edge.template /etc/aziot/config.tomlافتح ملف التكوين على جهاز IoT Edge.
sudo nano /etc/aziot/config.tomlابحث عن قسم 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" }قم بتحديث قيم
id_scopeوregistration_idوsymmetric_keyبمعلومات DPS والجهاز.يمكن أن تقبل معلمة المفتاح المتماثل قيمة مفتاح مضمن أو URI ملف أو URI PKCS#11. قم بإلغاء التعليق على سطر مفتاح متماثل واحد فقط، استنادا إلى التنسيق الذي تستخدمه.
إذا كنت تستخدم أي معرفات URI ل PKCS#11، فابحث عن قسم PKCS#11 في ملف التكوين وقم بتوفير معلومات حول تكوين PKCS#11.
احفظ الملف config.toml وأغلقه.
تطبيق تغييرات التكوين التي أجريتها على 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.