ما هو اختبار البنية التحتية وكيفية القيام بذلك باستخدام PowerShell

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




إذا كنا نقوم بتشغيل برنامج نصي لإدارة المستخدم يقوم بإنشاء مستخدم AD (Active Directory)، أو صندوق بريد Exchange، أو مجلد رئيسي، فكيف نعرف حقًا أن هذا البرنامج النصي قام بكل ما كان من المفترض أن يفعله؟ نحن لا نفعل ذلك. يمكننا أن نلاحظ أنه لم يكن هناك خطأ ونتحقق أيضًا من الأمور بعد ذلك. ولكن إذا كان البرنامج النصي يغطي 1000 مستخدم، فمن غير الممكن أن يكون ذلك ممكنًا. نحن بحاجة إلى استخدام أتمتة الاختبار أيضًا!


ما هو اختبار البنية التحتية؟

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

تتضمن بعض الأمثلة على اختبار البنية التحتية ما يلي:

  • “هل تم إنشاء مستخدم AD هذا بالسمات الصحيحة؟”
  • “هل يستجيب المنفذ 80 على خادم الويب الخاص بي؟”
  • “هل خدمة DHCP قيد التشغيل؟”


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

دعنا نستعرض بعض الأمثلة الشائعة للنصوص البرمجية التي أستخدمها لمساعدتي في التأكد من تكوين البنية الأساسية الخاصة بي بشكل مناسب.

اختبار منفذ الشبكة

أحد الأمثلة النموذجية لاختبار البنية التحتية هو اختبار منفذ الشبكة. نظرًا لأن جميع خدمات الشبكة تفتح وتستمع على منفذ معين، فإن الاختبار الحقيقي لمعرفة ما إذا كانت هذه الخدمة “مفعلة” أم لا هو التأكد من توفر منفذ معين لأجهزة الكمبيوتر البعيدة. ومع ذلك، يتطلب إنشاء هذا الاختبار قدرًا لا بأس به من المعرفة حول TCP وUDP و.NET. لحسن الحظ، يمكنك استخدام برنامج نصي موجود من المجتمع يسمى Test-NetworkPort.ps1. يمكن تنزيل هذا البرنامج النصي من معرض بوويرشيل عن طريق الجري


Install-Script -Name Test-NetworkPort 

.

بمجرد التنزيل، ما عليك سوى الاتصال به باستخدام Test-NetworkPort.ps1 وتمرير اسم الكمبيوتر والمنفذ للاختبار.

PS > Test-NetworkPort.ps1 -ComputerName DC -Port 389
True

اعتمادًا على ما إذا كان المنفذ يستمع أم لا، سيعود هذا البرنامج النصي True أو False. يمكنك استكشاف المعلمات الأخرى التي يحتوي عليها هذا البرنامج النصي من خلال قراءة المساعدة المرتبطة به عبر Get-Help Test-NetworkPort.ps1.

يقوم هذا البرنامج النصي بإجراء اختبار على البنية التحتية التي تستمع على منفذ معين.

اختبار تحليل اسم DNS

عند تشغيل جهاز جديد، سواء كنت تعتمد على DNS الديناميكي لتسجيل الاسم أو إذا كنت تقوم بإنشاء سجل DNS بشكل صريح، فسوف تحتاج إلى التأكد من إمكانية حل اسمه. باستخدام PowerShell، يمكنك استخدام برنامج نصي يحاول تحليل اسم معين وإرجاعه True أو False إذا كان يمكن حلها أم لا.

كما هو الحال مع مثال اختبار المنفذ الخاص بنا، يمكننا أيضًا تنزيل هذا البرنامج النصي من معرض PowerShell أيضًا عبر Install-Script -Name Test-DnsNameResolution.


عند اكتمال التنزيل، ما عليك سوى الاتصال بـ Test-DnsNameResolution.ps1 مع ذكر الاسم وخادم DNS الذي ترغب في الاستعلام عنه.

PS> Test-DnsNameResolution.ps1 -Name DC.mylab.local -Server DC
False

إذا عاد البرنامج النصي True، يمكن لخادم DNS DC حل اسم DC.mylab.local. ولو لم يكن كذلك لكان قد عاد False.

خاتمة

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

لإنشاء اختبارات بنية تحتية متطورة يتطلب أولاً تحديد ما يعنيه أن تكون “أعلى” أو “متوقع”، وإنشاء برنامج PowerShell النصي للعثور على الحالة الحالية والمتوقعة، واتخاذ قرار من هناك.

لا تستمر في التأكد يدويًا من أن البنية الأساسية لديك تعمل كما تتوقع. احصل على إنشاء بعض البرامج النصية لـ PowerShell وقم بأتمتة تلك العمليات الدنيوية نيابةً عنك!

(العلامات للترجمة)مايكروسوفت

أضف تعليق