إنشاء موارد Azure باستخدام Azure PowerShell باستخدام برنامج نصي

مكتمل

يمكن أن تستغرق المهام المعقدة أو المتكررة وقتا طويلا وعرضة للخطأ عند تنفيذها يدويا. تفضل المؤسسات أتمتة هذه المهام لتقليل التكاليف وتجنب الأخطاء.

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

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

  • إنشاء أجهزة ظاهرية متعددة: استخدم New-AzVM لإنشاء أجهزة ظاهرية متعددة تسمى بشكل فريد.
  • معلمة مجموعة الموارد: اسمح للبرنامج النصي بقبول اسم مجموعة الموارد كمعلمة.

في هذه الوحدة، ستتعلم كيفية كتابة وتنفيذ برنامج نصي PowerShell يلبي هذه المتطلبات.

ما هو برنامج PowerShell النصي؟

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

تحتوي ملفات البرنامج النصي PowerShell على .ps1 ملحق ملف. يمكنك إنشاء هذه الملفات وحفظها باستخدام أي محرر نصوص.

تلميح

إذا كنت تكتب برامج PowerShell النصية، ففكر في استخدام Visual Studio Code (VS Code)، وهو مجاني ومدعم على Windows وLinux وmacOS. يوفر ملحق PowerShell ل VS Code ميزات مثل تمييز بناء الجملة وقائمة أوامر cmdlets المتوفرة.

لقطة الشاشة التالية هي مثال على VS Code مع نموذج برنامج نصي للاتصال ب Azure وإنشاء جهاز ظاهري:

لقطة شاشة ل VS Code مع برنامج نصي PowerShell لإنشاء جهاز ظاهري في Azure.

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

.\myScript.ps1

تقنيات PowerShell

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

المتغيرات

في PowerShell، يتم الإعلان عن المتغيرات باستخدام علامة الدولار ($) والقيم المعينة باستخدام عامل تشغيل يساوي (=). على سبيل المثال:

$location = 'eastus'

لتحديد القيمة المخزنة في متغير، استخدم البادئة $ واسمها:

$location

يمكن أن تحمل المتغيرات الكائنات. على سبيل المثال، يعين $adminCredential التعريف التالي المتغير إلى الكائن الذي تم إرجاعه بواسطة Get-Credential cmdlet:

$adminCredential = Get-Credential

التكرارات

يحتوي PowerShell على العديد من بنيات التكرار الحلقي، بما في ذلك ForوForeachDo-UntilDo-WhileWhile. يعد التكرار Foreach الحلقي خيارا جيدا للسيناريوهات التي تحتاج فيها إلى تنفيذ حلقة عبر مجموعة من القيم في مجموعة.

$items = 'web','app','sql'
foreach ($item in $items) {
    $item
}

المعلمات

عند إنشاء برنامج نصي PowerShell، يمكنك إضافة معلمات إلى البرنامج النصي ثم تحديد قيم لهذه المعلمات عند تنفيذ البرنامج النصي. على سبيل المثال:

.\setupEnvironment.ps1 -Name 'web','app','sql' -Location eastus

داخل البرنامج النصي، التقط القيم في المتغيرات. في هذا المثال، المعلمات هي الاسم والموقع:

param (
    [string[]]$Name,
    [string]$Location
)

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

الجمع بين التقنيات

يوفر الجمع بين ميزات لغة PowerShell وAzure PowerShell cmdlets جميع الأدوات التي تحتاجها لأتمتة مهام Azure. في مثال CRM، يمكنك إنشاء أجهزة Linux VM متعددة باستخدام برنامج نصي ذات معلمات وحلقة لتبسيط العملية. يسمح لك هذا البرنامج النصي بتنفيذ عملية معقدة في خطوة واحدة.

مثال البرنامج النصي

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

param (
    [string[]]$Name = 'web','app','sql',
    [string]$ResourceGroupName,
    [string]$Location = 'eastus'
)

$adminCredential = Get-Credential

foreach ($vm in $Name) {
    $azVmParams = @{
        ResourceGroupName   = $ResourceGroupName
        Name                = $vm
        Credential          = $adminCredential
        Location            = $Location
        Image               = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
        OpenPorts           = 22
        PublicIpAddressName = $vm
    }
    New-AzVM @azVmParams
}

تنفيذ البرنامج النصي

احفظ البرنامج النصي باسم CreateVMs.ps1 وقم بتشغيله من سطر أوامر PowerShell، مع توفير المعلمات المطلوبة:

.\CreateVMs.ps1 -ResourceGroupName <resource-group-name>

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