استكشاف الأخطاء الاصطناعية على الأجهزة الظاهرية للمختبر وإصلاحها في Azure DevTest Labs

ترشدك هذه المقالة خلال الأسباب المحتملة وخطوات استكشاف الأخطاء وإصلاحها لحالات فشل البيانات الاصطناعية على موارد الجهاز الظاهري Azure DevTest Labs (VM).

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

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

استكشاف مشكلات مدخل Azure وإصلاحها

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

التحقق من حالة الجهاز الظاهري

تحقق من حالة الجهاز الظاهري في مدخل Microsoft Azure باتباع الخطوات التالية:

  1. استعرض للوصول إلى صفحة Overview للجهاز الظاهري لمختبر DevTest Labs وتأكد من تشغيل الجهاز:

    لقطة شاشة توضح كيفية تأكيد تشغيل الجهاز الظاهري DevTest Labs.

  2. حدد Artifacts وافتح قائمة البيانات الاصطناعية للجهاز الظاهري للمختبر:

    لقطة شاشة توضح كيفية فتح قائمة Artifacts للجهاز الظاهري للمختبر.

  3. تحقق من الخيار Apply artifacts وتأكد من أن الجهاز الظاهري للمختبر جاهز لقبول البيانات الاصطناعية المطبقة:

    لقطة شاشة توضح كيفية تأكيد إمكانية تطبيق البيانات الاصطناعية على الجهاز الظاهري DevTest Labs.

    عندما يكون الخيار تطبيق البيانات الاصطناعية رماديا، لا يمكنك تطبيق البيانات الاصطناعية على الجهاز الظاهري للمختبر وتشاهد رسالة إعلام على الصفحة:

    لقطة شاشة للرسالة التي تعرض البيانات الاصطناعية لا يمكن تطبيقها على الجهاز الظاهري DevTest Labs.

استخدام أمر PowerShell

يمكنك أيضا استخدام Azure PowerShell للتحقق مما إذا كان الجهاز الظاهري للمختبر الخاص بك يمكنه تلقي البيانات الاصطناعية المطبقة.

يقوم الأمر التالي GET بإرجاع العلامة canApplyArtifacts بقيمة True أو False. لتشغيل الأمر، استبدل المعلمة $LabName/$VmName باسم المختبر واسم الجهاز الظاهري، وحدد مجموعة موارد المختبر في المعلمة $LabRgName .

Select-AzSubscription -SubscriptionId $SubscriptionId | Out-Null
$vm = Get-AzResource `
        -Name "$LabName/$VmName" `
        -ResourceGroupName $LabRgName `
        -ResourceType 'microsoft.devtestlab/labs/virtualmachines' `
        -ApiVersion '2018-10-15-preview' `
        -ODataQuery '$expand=Properties($expand=ComputeVm)'
$vm.Properties.canApplyArtifacts

التحقيق في تفاصيل البيانات الاصطناعية الفاشلة

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

تحقق من البيانات الاصطناعية الفاشلة باتباع الخطوات التالية:

  1. استعرض للوصول إلى صفحة قائمة Artifacts للجهاز الظاهري للمختبر، وحدد الأداة بالحالة Failed :

    لقطة شاشة توضح كيفية تحديد موقع الأداة الفاشلة للجهاز الظاهري للمختبر وتحديدها.

  2. يتم فتح طريقة عرض تفاصيل البيانات الاصطناعية . تتضمن التفاصيل معلومات رسالة النشر ورسالة الملحق حول فشل البيانات الاصطناعية:

    لقطة شاشة لتفاصيل البيانات الاصطناعية الفاشلة، بما في ذلك معلومات رسالة النشر والملحق.

فحص سجلات النشاط

لتثبيت البيانات الاصطناعية، يقوم DevTest Labs بإنشاء وتوزيع قالب Azure Resource Manager (ARM) الذي يطلب استعمال ملحق البرنامج النصي المخصص (CSE). يظهر خطأ في هذا المستوى في سجلات النشاط للاشتراك ومجموعة الموارد التي تحتوي على الجهاز الظاهري للمختبر.

إشعار

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

افحص إدخالات سجل النشاط بحثا عن حالات الفشل المتعلقة بتثبيت أو تطبيق البيانات الاصطناعية على الجهاز الظاهري للمختبر باستخدام الخطوات التالية:

  1. استعرض للوصول إلى صفحة سجل النشاط للجهاز الظاهري للمختبر وحدد موقع الأداة بالحالة فشل :

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

  2. حدد الإدخال لفتح جزء التفاصيل وعرض معلومات السجل:

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

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

    يتوافق عنوان الجزء مع عنوان الإدخال، مثل تطبيق البيانات الاصطناعية على الجهاز الظاهري:

    لقطة شاشة توضح كيفية عرض تفاصيل إدخال سجل النشاط لأداة فاشلة.

  3. في جزء التفاصيل، حدد JSON لمراجعة محتويات حمولة JSON. يمكنك مشاهدة الخطأ في نهاية مستند JSON:

    لقطة شاشة توضح كيفية عرض تفاصيل JSON لإدخال سجل النشاط للبيانات الاصطناعية الفاشلة.

التحقيق في مستودع البيانات الاصطناعية وحساب تخزين المختبر

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

بشكل افتراضي، لدى DevTest Labs حق الوصول إلى مستودع البيانات الاصطناعية العام لدى DevTest Labs. يتوفر لك أيضًا توصيل مختبر بمستودع خاص للوصول إلى البيانات الاصطناعية المخصصة. اعتمادا على التكوين، قد لا يكون لدى الأجهزة الظاهرية للمختبر حق الوصول المباشر إلى مستودع البيانات الاصطناعية. يقوم DevTest Labs بتخزين البيانات الاصطناعية في حساب تخزين معملي تم إنشاؤه عند تهيئة المختبر لأول مرة.

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

  • إذا تم حظر الوصول إلى حساب التخزين، فقد ترى خطأ مشابها لهذا المثال:

    CSE Error: Failed to download all specified files. Exiting. Exception: Microsoft.WindowsAzure.Storage.StorageException: The remote server returned an error: (403) Forbidden. ---> System.Net.WebException: The remote server returned an error: (403) Forbidden.
    

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

تحديد مشكلات اتصال المستودع بحساب Azure Storage باستخدام الخطوات التالية:

  1. افحص مجموعات أمان الشبكة المضافة (NSG). إذا تمت إضافة نهج اشتراك لتكوين مجموعات أمان الشبكة تلقائيا في جميع الشبكات الظاهرية، فقد يؤثر ذلك على الشبكة الظاهرية المستخدمة لإنشاء الأجهزة الظاهرية للمختبر.

  2. تحقق من جميع قواعد NSG:

  3. تحقق من حساب التخزين الافتراضي لمختبرك.

    حساب التخزين الافتراضي هو حساب التخزين الأول الذي تم إنشاؤه أثناء إنشاء المختبر. يبدأ الاسم عادة بالحرف "a" وينتهي برقم متعدد الأرقام، مثل a<labname>#.

    1. استعرض للوصول إلى صفحة Overview للجهاز الظاهري لمختبر DevTest Labs، وحدد Resource visualizer.

    2. في الرسم التخطيطي، حدد موقع حساب التخزين الذي يحتوي على اسم يطابق اصطلاح التسمية الموضح، a<labname>#.

    3. حدد مورد حساب التخزين لمشاهدة القائمة المنبثقة، ثم حدد عرض:

      لقطة شاشة توضح كيفية تحديد خيار View لحساب التخزين لمورد مختبرات DevTest.

    4. في صفحة نظرة عامة على حساب التخزين، قم بتوسيع قسم Security + networking في القائمة اليسرى، وحدد Networking:

      لقطة شاشة توضح كيفية عرض تكوين الشبكة لحساب التخزين لمورد مختبرات DevTest.

    5. في علامة التبويب Firewalls and virtual networks ، تحقق من التكوين لخيار الوصول إلى الشبكة العامة:

      1. إذا تم تحديد Enabled من الشبكات الظاهرية المحددة وعناوين IP، فتأكد من أن قائمة عناوين IP المسموح بها تعرض الشبكات الظاهرية للمختبر التي يمكن استخدامها لإنشاء الأجهزة الظاهرية للمختبر:

        لقطة شاشة تعرض تحديد Enabled from selected virtual networks and IP addresses لحساب تخزين موارد المختبر.

      2. وإلا، فتأكد من تحديد تمكين من جميع الشبكات :

        لقطة شاشة تعرض تحديد Enabled from all networks لحساب تخزين موارد المختبر.

لاستكشاف الأخطاء وإصلاحها بشكل مفصل، راجع تكوين جدران الحماية الخاصة والشبكات الظاهرية لدى Azure Storage.

استكشاف الأخطاء وإصلاحها على جهاز المختبر

يمكنك الاتصال بالجهاز الظاهري للمختبر حيث فشلت الأداة والتحقيق في المشكلة.

فحص ملف سجل ملحق البرنامج النصي المخصص

عرض ملف سجل ملحق البرنامج النصي المخصص (CSE) لجهاز ظاهري يعمل بنظام Windows باتباع الخطوات التالية:

  1. اتصل بالجهاز الظاهري لمختبر DevTest Labs قيد التشغيل.

  2. افتح نافذة مستكشف الملفات وانتقل إلى C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\<CSE version>\Status\. مثال على <إصدار> CSE هو 1.10.12.

    لقطة شاشة تعرض محتويات مجلد الحالة على جهاز ظاهري يعمل بنظام Windows ل DevTest Labs.

  3. افتح ملف STATUS وافحصه لعرض الخطأ، مثل 1.status.

للحصول على إرشادات عن إيجاد ملفات السجل على الجهاز الظاهري لنظام Linux، راجع استخدام Azure Custom Script Extension الإصدار 2 مع أجهزة Linux الظاهرية.

التحقق من Azure Virtual Machine Agent

تأكد من تثبيت Azure Virtual Machine Agent (VM Agent) لجهازك الظاهري المعملي وجاهز له.

عند بدء تشغيل الجهاز الظاهري للمختبر لأول مرة، أو عند تثبيت CSE لأول مرة لخدمة طلب تطبيق البيانات الاصطناعية، قد يحتاج الجهاز الظاهري للمختبر إلى ترقية عامل الجهاز الظاهري أو انتظار تهيئة عامل الجهاز الظاهري. ربما يعتمد عامل الجهاز الظاهري على الخدمات التي تستغرق وقتًا طويلاً للتهيئة.

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

  1. اتصل بالجهاز الظاهري لمختبر DevTest Labs قيد التشغيل.

  2. افتح نافذة مستكشف الملفات، وانتقل إلى المجلد الذي يحتوي على ملفات السجل للجهاز الظاهري للمختبر، مثل C:\WindowsAzure\logs.

  3. افتح ملف WaAppAgent.log.

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

    [00000006] [11/14/2019 05:52:13.44] [INFO]  WindowsAzureGuestAgent starting. Version 2.7.41491.949
    ...
    [00000006] [11/14/2019 05:52:31.77] [WARN]  Waiting for OOBE to Complete ...
    ...
    [00000006] [11/14/2019 06:02:30.43] [WARN]  Waiting for OOBE to Complete ...
    [00000006] [11/14/2019 06:02:33.43] [INFO]  StateExecutor initialization completed.
    [00000020] [11/14/2019 06:02:33.43] [HEART] WindowsAzureGuestAgent Heartbeat.
    

    في هذا المثال، استغرق عامل الجهاز الظاهري 10 دقائق و20 ثانية للبدء. يرجع التأخير إلى أن خدمة تجربة المنتج الجاهز (OOBE) استغرقت وقتا طويلا للبدء. تسبب وقت البدء الطويل لعامل الجهاز الظاهري في توقف الأداة عن الاستجابة.

للحصول على المعلومات العامة حول ملحقات Azure، راجع ملحقات الجهاز الظاهري Azure وميزاته. لمزيد من الأفكار حول استكشاف الأخطاء وإصلاحها، راجع نظرة عامة على Azure Virtual Machine Agent.

التحقيق في المشكلات المتعلقة بالبرنامج النصي

سبب آخر قد يفشل تثبيت البيانات الاصطناعية يرجع إلى الطريقة التي يتم بها تأليف البرنامج النصي لتثبيت البيانات الاصطناعية.

فيما يلي بعض الأمثلة على مشكلات البرنامج النصي المحتملة:

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

  • يتطلب البرنامج النصي إجراء المستخدم أثناء تنفيذ البرنامج النصي. يمكن أن يحدث هذا السيناريو إذا كان هناك تأخير طويل في تنفيذ البرنامج النصي أثناء انتظار المستخدم لاتخاذ إجراء. من الممارسات الجيدة تأليف البرامج النصية التي يمكن أن تعمل بصمت دون الحاجة إلى تدخل المستخدم.

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

  1. اتصل بالجهاز الظاهري لمختبر DevTest Labs قيد التشغيل.

  2. افتح نافذة مستكشف الملفات.

  3. انتقل إلى مجلد التنزيل الذي يحتوي على البرنامج النصي لتثبيت البيانات الاصطناعية لجهازك الظاهري، مثل C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\<CSE version>\Downloads\. مثال على <إصدار> CSE هو 1.10.12.

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

  4. افتح نافذة موجه الأوامر مع امتيازات إدارية على الجهاز الظاهري الخاص بك.

  5. تشغيل البرنامج النصي لتثبيت البيانات الاصطناعية في نافذة موجه الأوامر.

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

  6. حدد ما إذا كان البرنامج النصي يوضح سلوكا غير متوقع أو إشكاليا.

  7. حسب الحاجة، قم بتصحيح البرنامج النصي على الجهاز الظاهري للمختبر الخاص بك، ثم قم بتشغيل البرنامج النصي مرة أخرى لتأكيد حل المشكلات.

التحقق من بنية البيانات الاصطناعية

يتعين أن يكون للبيانات الاصطناعية المخصصة البنية المناسبة. تأكد من التأكد من أن البيانات الاصطناعية المخصصة في البرنامج النصي لتثبيت البيانات الاصطناعية تنفذ البنية الصحيحة. توفر الموارد التالية معلومات لمساعدتك على إكمال هذا الفحص:

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

طلب تحديث البرنامج النصي

يتوفر لك إرسال تصحيحات البرنامج النصي المقترحة للبيانات الاصطناعية المستضافة في المستودع العام لـ DevTest Labs. للحصول على مزيد من التفاصيل، راجع قسم المساهمات في مستند README .

الحصول على الدعم

في حالة كنت بحاجة إلى مزيد من المساعدة، فجرب إحدى قنوات الدعم التالية:

  • ابحث في موارد موقع ويب Microsoft Community للحصول على معلومات حول Azure DevTest Labs والوصول إلى المنشورات على Stack Overflow.

  • تواصل مع @AzureSupport، حساب Microsoft Azure الرسمي لتحسين التجربة الخاصة بالعملاء. تقوم خدمة Azure Support بربط مجتمع Azure بالإجابات والدعم والخبراء.