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

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

هام

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

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

توضح هذه المقالة منهجيتين. حدد تفضيلك استنادا إلى بنية الحل الخاص بك:

  • التوفير التلقائي لنظام Linux على جهاز Windows مع أجهزة TPM الفعلية.
  • التزويد التلقائي ل Linux على جهاز Windows باستخدام TPM محاكاة. نوصي بهذه المنهجية فقط كسيناريو اختبار. لا يوفر TPM المحاكي نفس الأمان مثل TPM الفعلي.

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

  • تثبيت IoT Edge ل Linux على Windows.
  • استرداد معلومات TPM من جهازك.
  • إنشاء تسجيل فردي للجهاز.
  • تزويد جهازك بمعلومات TPM الخاصة به.

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

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

  • مركز 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.

إشعار

مطلوب TPM 2.0 عند استخدام إثبات TPM مع خدمة توفير الجهاز.

يمكنك فقط إنشاء عمليات تسجيل فردية، وليس جماعية، لتسجيلات خدمة توفير الجهاز عند استخدام TPM.

تثبيت 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.

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

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

تمكين مرور TPM

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

  1. افتح PowerShell في جلسة عمل غير مقيدة.

  2. إذا لم تكن قد قمت بذلك بالفعل، فقم بتعيين نهج التنفيذ على جهازك بحيث AllSigned يمكنك تشغيل IoT Edge ل Linux على وظائف Windows PowerShell.

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    
  3. قم بتشغيل ميزة TPM.

    Set-EflowVmFeature -feature 'DpsTpm' -enable
    

استرداد معلومات TPM من جهازك

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

مفتاح المصادقة فريد لكل شريحة TPM. يتم الحصول عليه من الشركة المصنعة لرقاقة TPM المرتبطة به. يمكنك اشتقاق معرف تسجيل فريد لجهاز TPM الخاص بك عن طريق، على سبيل المثال، إنشاء تجزئة SHA-256 لمفتاح المصادقة.

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

  1. افتح PowerShell في جلسة عمل غير مقيدة.

  2. تشغيل الأمر .

    Get-EflowVmTpmProvisioningInfo | Format-List
    

إنشاء تسجيل خدمة توفير الجهاز

استخدم معلومات التوفير الخاصة ب TPM لإنشاء تسجيل فردي في خدمة توفير الجهاز.

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

تلميح

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

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

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

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

    1. بالنسبة إلى آلية، حدد TPM.

    2. قم بتوفير مفتاح المصادقة ومعرف التسجيل الذي نسخته من الجهاز الظاهري أو الجهاز الفعلي.

    3. قم بتوفير معرف لجهازك إذا أردت ذلك. إذا لم توفر معرف جهاز، يتم استخدام معرف التسجيل.

    4. حدد True للإعلان عن أن الجهاز الظاهري أو الجهاز الفعلي هو جهاز IoT Edge.

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

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

    7. حدد حفظ.

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

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

  1. افتح جلسة PowerShell غير مقيدة على جهاز Windows.

  2. قم بتوفير جهازك باستخدام معرف النطاق الذي جمعته من مثيل خدمة تزويد الجهاز.

    Provision-EflowVM -provisioningType "DpsTpm" -scopeId "SCOPE_ID_HERE"
    

    إذا قمت بتسجيل الجهاز باستخدام معرف تسجيل مخصص، يجب تحديد معرف التسجيل هذا أيضا عند التوفير:

    Provision-EflowVM -provisioningType "DpsTpm" -scopeId "SCOPE_ID_HERE" -registrationId "REGISTRATION_ID_HERE"
    

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

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

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

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

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

  1. الاتصال إلى IoT Edge ل Linux على Windows VM باستخدام الأمر التالي في جلسة عمل 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 ل Linux على Windows

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

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

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

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

تعرف على كيفية نشر ومراقبة وحدات IoT Edge على نطاق واسع باستخدام مدخل Azure أو Azure CLI.