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

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

هام

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

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

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

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

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

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

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

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

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

جهاز Windows مع الحد الأدنى من المتطلبات التالية:

  • متطلبات النظام

    • Windows 101/11 (Pro وEnterprise وIoT Enterprise)
    • Windows Server 20191/2022
      1 Windows 10 وWindows Server 2019 الحد الأدنى للإصدار 17763 مع تثبيت جميع التحديثات التراكمية الحالية.
  • متطلبات الجهاز

    • الحدّ الأدنى للذاكرة الحرة: 1 غيغابايت
    • الحدّ الأدنى للمساحة الفارغة على القرص: 10 غيغابايت
  • دعم الظاهرية

  • دعم الشبكات

    • لا يأتي Windows Server مع مفتاح افتراضي. قبل أن تتمكن من نشر EFLOW على جهاز Windows Server، تحتاج إلى إنشاء مفتاح ظاهري. لمزيد من المعلومات، راجع إنشاء مفتاح ظاهري ل Linux على Windows.
    • تأتي إصدارات سطح مكتب Windows مزودة بمفتاح افتراضي يمكن استخدامه لتثبيت EFLOW. إذا لزم الأمر، يمكنك إنشاء مفتاح ظاهري مخصص خاص بك.

تلميح

إذا كنت ترغب في استخدام وحدات Linux المسرعة لوحدة معالجة الرسومات في Azure IoT Edge لنظام التشغيل Linux على نشر Windows، فهناك العديد من خيارات التكوين التي يجب مراعاتها.

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

تأكد من أنك تأخذ الوقت لتلبية المتطلبات الأساسية لتسريع وحدة معالجة الرسومات الآن. ستحتاج إلى إعادة تشغيل عملية التثبيت إذا قررت أنك تريد تسريع GPU أثناء التثبيت.

أدوات المطور

قم بإعداد جهازك المستهدف لتثبيت Azure IoT Edge ل Linux على Windows ونشر الجهاز الظاهري Linux:

  1. تعيين نهج التنفيذ على الجهاز الهدف إلى AllSigned. يمكنك التحقق من نهج التنفيذ الحالي في موجه PowerShell غير مقيد باستخدام الأمر التالي:

    Get-ExecutionPolicy -List
    

    إذا لم يُعيِّن نهج تنفيذ local machine إلى AllSigned، يُمكنك تعيين نهج التنفيذ من خلال:

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    

لمزيد من المعلومات حول الوحدة النمطية Azure IoT Edge for Linux على Windows PowerShell، راجع مرجع وظائف PowerShell.

إنشاء شهادات هوية الجهاز

شهادة هوية الجهاز هي شهادة انتقال البيانات من الخادم تتصل من خلال سلسلة شهادات الثقة بشهادة المرجع المصدق X.509 الأعلى (CA). يجب أن يكون اسم شهادة هوية الجهاز (CN) معينا على معرف الجهاز الذي تريد أن يكون للجهاز في مركز IoT الخاص بك.

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

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

تحتاج إلى الملفات التالية لإعداد التوفير التلقائي باستخدام X.509:

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

إشعار

حاليا، يمنع تقييد في libiothsm استخدام الشهادات التي تنتهي صلاحيتها في 1 يناير 2038 أو بعد ذلك.

استخدام شهادات الاختبار (اختياري)

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

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

  • <WRKDIR>\certs\iot-edge-device-identity-<name>-full-chain.cert.pem
  • <WRKDIR>\private\iot-edge-device-identity-<name>.key.pem

تحتاج إلى هاتين الشهادتين على جهاز IoT Edge. إذا كنت ستستخدم التسجيل الفردي في DPS، فستحمل ملف .cert.pem. إذا كنت ستستخدم تسجيل المجموعة في DPS، فأنت بحاجة أيضا إلى شهادة CA وسيطة أو جذر في نفس سلسلة الشهادات من الثقة لتحميلها. إذا كنت تستخدم شهادات تجريبية، فاستخدم الشهادة <WRKDIR>\certs\azure-iot-test-only.root.ca.cert.pem لتسجيل المجموعة.

إنشاء تسجيل DPS

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

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

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

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

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

تأخذ التسجيلات الفردية الجزء العام من شهادة هوية الجهاز وتطابق ذلك مع الشهادة على الجهاز.

تلميح

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

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

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

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

    • آلية: حدد X.509.

    • الشهادة الأساسية .pem أو ملف .cer: تحميل الملف العام من شهادة هوية الجهاز. إذا استخدمت البرامج النصية لإنشاء شهادة اختبار، فاختر الملف التالي:

      <WRKDIR>\certs\iot-edge-device-identity-<name>.cert.pem

    • معرف جهاز IoT Hub: قم بتوفير معرف لجهازك إذا كنت ترغب في ذلك. يمكنك استخدام معرفات الجهاز لاستهداف جهاز فردي لنشر الوحدة النمطية. إذا لم توفر معرف جهاز، يتم استخدام الاسم الشائع (CN) في شهادة X.509.

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

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

    • حالة الجهاز المزدوج الأولية: أضف قيمة علامة لإضافتها إلى توأم الجهاز إذا كنت ترغب في ذلك. يمكنك استخدام العلامات لاستهداف مجموعات من الأجهزة للتوزيع التلقائي. على سبيل المثال:

      {
          "tags": {
             "environment": "test"
          },
          "properties": {
             "desired": {}
          }
      }
      
  4. حدد حفظ.

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

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

تثبيت IoT Edge

انشر Azure IoT Edge ل Linux على Windows على جهازك المستهدف.

إشعار

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

  1. في جلسة عمل PowerShell مرتفعة، قم بتشغيل أي من الأوامر التالية اعتمادا على بنية الجهاز الهدف لتنزيل IoT Edge لنظام Linux على Windows.

    • X64/AMD64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_X64" -OutFile $msiPath
      
    • ARM64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_ARM64" -OutFile $msiPath
      
  2. قم بتثبيت IoT Edge لـ Linux على نظام التشغيل Windows على جهازك.

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn"
    

    يمكنك تحديد IoT Edge المخصص ل Linux على تثبيت Windows ودلائل VHDX عن طريق إضافة INSTALLDIR="<FULLY_QUALIFIED_PATH>" معلمات و VHDXDIR="<FULLY_QUALIFIED_PATH>" إلى أمر التثبيت. على سبيل المثال، إذا كنت تريد استخدام المجلد D:\EFLOW للتثبيت وD :\EFLOW-VHDX ل VHDX، يمكنك استخدام PowerShell cmdlet التالي.

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn","INSTALLDIR=D:\EFLOW", "VHDXDIR=D:\EFLOW-VHDX"
    
  3. عيِّن نهج التنفيذ على الجهاز الهدف إلى AllSigned في حال لم يكن عند هذا الإعداد بالفعل. راجع متطلبات PowerShell الأساسية للأوامر للتحقق من نهج التنفيذ الحالي وتعيين نهج التنفيذ إلى AllSigned.

  4. إنشاء عملية نشر IoT Edge لـ Linux على نظام التشغيل Windows. يقوم التوزيع بإنشاء جهاز Linux الظاهري وتثبيت وقت تشغيل IoT Edge لك.

    Deploy-Eflow
    

    تلميح

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

    يمكنك تخصيص الموارد المتوفرة للجهاز الظاهري باستخدام Deploy-Eflow المعلمات الاختيارية للأمر. هذا مطلوب لنشر EFLOW على جهاز مع الحد الأدنى من متطلبات الأجهزة.

    على سبيل المثال، ينشئ الأمر أدناه جهازا ظاهريا بذاكرة أساسية لوحدة المعالجة المركزية الظاهرية 1 وذاكرة وصول عشوائي 1 غيغابايت (ممثلة بالميغابايت) ومساحة قرص 2 غيغابايت:

    Deploy-Eflow -cpuCount 1 -memoryInMB 1024 -vmDataSize 2
    

    للحصول على معلومات حول جميع المعلمات الاختيارية المتاحة، راجع وظائف PowerShell ل IoT Edge ل Linux على Windows.

    تحذير

    بشكل افتراضي، لا يحتوي الجهاز الظاهري EFLOW Linux على تكوين DNS. ستحاول عمليات التوزيع باستخدام DHCP الحصول على تكوين DNS الذي تم نشره بواسطة خادم DHCP. يرجى التحقق من تكوين DNS لضمان الاتصال بالإنترنت. لمزيد من المعلومات، راجع AzEFLOW-DNS.

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

    لاستخدام تمرير GPU، أضف معلمات gpuName وgpuPassthroughType وgpuCount إلى الأمر الخاص بكDeploy-Eflow. للحصول على معلومات حول جميع المعلمات الاختيارية المتاحة، راجع وظائف PowerShell ل IoT Edge ل Linux على Windows.

    تحذير

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

  5. إدخال 'Y' لقبول شروط الترخيص.

  6. إدخال 'O' أو 'R' للتبديل بين تشغيل بيانات التشخيص الاختيارية أو إيقاف تشغيلها وفقاً لتفضيلاتك.

  7. بمجرد اكتمال النشر، تبلغ نافذة PowerShell عن نجاح النشر.

    سيقول التوزيع الناجح

    بعد التوزيع الناجح، تكون جاهزا لتوفير جهازك.

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

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

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

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

قم بتشغيل الأمر التالي في جلسة عمل PowerShell غير مقيدة مع تحديث قيم العنصر النائب بقيمك الخاصة:

Provision-EflowVm -provisioningType DpsX509 -scopeId PASTE_YOUR_ID_SCOPE_HERE -registrationId PASTE_YOUR_REGISTRATION_ID_HERE -identityCertPath PASTE_ABSOLUTE_PATH_TO_IDENTITY_CERTIFICATE_HERE -identityPrivateKey PASTE_ABSOLUTE_PATH_TO_IDENTITY_PRIVATE_KEY_HERE

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

تحقق من تثبيت IoT Edge لنظام التشغيل Linux على Windows وتكوينه بنجاح على جهاز IoT Edge.

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

  1. سجِّل الدخول إلى IoT Edge لـ Linux الخاص بك على جهاز Windows الظاهري باستخدام الأمر التالي في جلسة عمل PowerShell لديك:

    Connect-EflowVm
    

    إشعار

    الحساب الوحيد المسموح له باستخدام بروتوكول SSH إلى الجهاز الظاهري هو المستخدم الذي قام بإنشائه.

  2. بمجرّد تسجيلك الدخول، يُمكنك التحقق من قائمة وحدات IoT Edge النمطية قيد التشغيل باستخدام أمر Linux التالي:

    sudo iotedge list
    
  3. إذا كنت بحاجة إلى استكشاف أخطاء خدمة IoT Edge وإصلاحها، فاستخدم أوامر Linux التالية.

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

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

      sudo iotedge check
      

    إشعار

    على جهاز تم توفيره حديثا، قد ترى خطأ يتعلق ب IoT Edge Hub:

    × جاهزية الإنتاج: يستمر دليل تخزين Edge Hub على نظام ملفات المضيف - خطأ

    تعذر التحقق من الحالة الحالية لحاوية edgeHub

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

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

إلغاء تثبيت IoT Edge ل Linux على Windows

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

  1. فتح الإعدادات على Windows
  2. حدد إضافة برامج أو إزالتها
  3. حدد تطبيق Azure IoT Edge
  4. حدد إلغاء التثبيت

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

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

يمكنك أيضًا: