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

ينطبق على:IoT Edge 1.4 checkmark IoT Edge 1.4

هام

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

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

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

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

إثبات المفتاح المتماثل هو نهج بسيط لمصادقة جهاز مع مثيل خدمة توفير الجهاز. يمثل أسلوب الإثبات هذا تجربة "Hello world" للمطورين الجدد في تزويد الجهاز، أو الذين ليس لديهم متطلبات أمان صارمة. يعد إثبات الجهاز باستخدام شهادات TPM أو 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.

إنشاء تسجيل 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

انشر 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 عن نجاح النشر.

    A successful deployment will say 'Deployment successful' at the end of the messages, PNG.

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

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

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

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

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

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

Provision-EflowVm -provisioningType DpsSymmetricKey -scopeId PASTE_YOUR_ID_SCOPE_HERE -registrationId PASTE_YOUR_REGISTRATION_ID_HERE -symmKey PASTE_YOUR_PRIMARY_KEY_OR_DERIVED_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.

يمكنك أيضًا: