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

ينطبق على:نعم أيقونة IoT Edge 1.1

هام

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

توفر هذه المقالة إرشادات شاملة لتسجيل وتوفير IoT Edge لنظام التشغيل Linux على جهاز Windows.

يحتوي كل جهاز يتصل بمركز 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 على جهاز Windows باستخدام شهادات X.509.

ملاحظة

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

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

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

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

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

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

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

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

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

    • Windows 10 1/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 المسرعة باستخدام GPU في Azure IoT Edge لنظام التشغيل Linux على توزيع Windows، فهناك العديد من خيارات التكوين التي يجب مراعاتها.

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

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

أدوات المطور

يمكنك استخدام PowerShell أو Windows مسؤول Center لإدارة أجهزة IoT Edge. كل أداة مساعدة لها متطلباتها الأساسية الخاصة:

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

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

    Get-ExecutionPolicy -List
    

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

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    

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

تسجيل جهازك

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

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

  1. سجل الدخول إلى مدخل Microsoft Azure والانتقال إلى IoT hub الخاص بك.

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

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

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

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

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

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

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

لقطة شاشة لكيفية عرض أجهزتك في مدخل Microsoft Azure، IoT Hub.

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

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

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

تثبيت IoT Edge

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

تثبيت IoT Edge لنظام التشغيل Linux على Windows على جهازك المستهدف.

ملاحظة

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

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

    $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
    $ProgressPreference = 'SilentlyContinue'
    Invoke-WebRequest "https://aka.ms/AzEflowMSI" -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 للأمر.

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

    Deploy-Eflow -cpuCount 4 -memoryInMB 4096 -vmDiskSize 20
    

    للحصول على معلومات حول جميع المعلمات الاختيارية المتوفرة، راجع وظائف 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 عن نجاح التوزيع.

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

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

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

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

لتوفير جهازك باستخدام مفاتيح متماثلة، ستحتاج إلى سلسلة اتصال جهازك.

يمكنك استخدام Windows مسؤول Center أو جلسة PowerShell غير مقيدة لتوفير أجهزتك.

قم بتشغيل الأمر التالي في جلسة PowerShell غير مقيدة على جهازك الهدف. استبدل نص العنصر النائب بالقيم الخاصة بك.

Provision-EflowVm -provisioningType ManualConnectionString -devConnString "PASTE_DEVICE_CONNECTION_STRING_HERE"

لمزيد من المعلومات حول Provision-EflowVM الأمر، راجع وظائف PowerShell ل IoT Edge لنظام التشغيل Linux على Windows.

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

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

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

    Connect-EflowVm
    

    ملاحظة

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

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

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

    1. استرداد سجلات الخدمة.

      sudo journalctl -u iotedge
      
    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 LTS
  4. حدد إلغاء التثبيت

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