البرنامج التعليمي: إنشاء دفاتر تشغيل PowerShell Workflow في التنفيذ التلقائي

يرشدك هذا البرنامج التعليمي لكيفية إنشاء دفتر تشغيل PowerShell Workflow في Azure Automation. سجلات التشغيل في PowerShell Workflow هي عبارة عن دفاتر تشغيل نصية تستند إلى Windows PowerShell Workflow. يمكنك إنشاء وتحرير التعليمات البرمجية لدفتر التشغيل باستخدام محرر النص في مدخل Azure.

إشعار

تنطبق هذه المقالة فقط على PowerShell 5.1. لا تدعم إصدارات PowerShell 7+ مهام سير العمل، ولا يمكن تحديث دفاتر التشغيل القديمة. نوصيك باستخدام دفاتر التشغيل النصية PowerShell 7.2 للميزات المتقدمة مثل تنفيذ المهمة المتوازية. تعرف على المزيد حول قيود دفاتر تشغيل PowerShell Workflow.

في هذا البرنامج التعليمي، تتعلم كيفية:

  • إنشاء دفتر تشغيل PowerShell Workflow
  • اختبار ونشر دفتر التشغيل
  • تشغيل وتتبع حالة مهمة دفتر التشغيل
  • إضافة المصادقة لإدارة موارد Azure
  • تحديث معلمات دفتر التشغيل لبدء تشغيل جهاز ظاهري لـ Azure

في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.

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

تعيين أذونات للهويات المدارة

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

  1. سجل الدخول إلى مدخل Microsoft Azure وانتقل إلى حساب التنفيذ التلقائي الخاص بك.

  2. ضمن إعدادات الحساب، حدد الهوية (معاينة).

  3. من علامة التبويب تعيين النظام، ضمن أذونات، حدد تعيينات دور Azure لفتح صفحة تعيينات دور Azure.

    تحديد تعيينات دور Azure في المدخل.

  4. حدد + إضافة تعيين دور (معاينة) لفتح صفحة إضافة تعيين دور (معاينة).

    إضافة تعيينات الدور في المدخل.

  5. حدد القيم المناسبة.

    الخاصية الوصف
    Scope النطاق هو مجموعة من الموارد التي ينطبق عليها تعيين الدور. من القائمة المنسدلة، حدد Resource Group.
    الاشتراك يجب أن يتم ملء هذا الحقل تلقائياً مع اشتراكك.
    مجموعة الموارد من القائمة المنسدلة، حدد مجموعة الموارد لمنح أذونات الهوية.
    الدور من القائمة المنسدلة، حدد DevTest Labs User.
  6. حدد حفظ، ثم أغلق صفحة تعيينات الدور Azure للعودة إلى علامة التبويب تعيين النظام.

  7. حدد علامة التبويب تعيين المستخدم.

  8. حدد الهوية المدارة التي عينها المستخدم من القائمة لفتح صفحة الهوية المدارة.

    تحديد الهوية المدارة المعينة من قِبل المستخدم في المدخل.

  9. قم بتدوين معرّف العميل للاستخدام لاحقاً.

    إظهار معرف العميل للهوية المدارة في المدخل

  10. من القائمة اليسرى، حدد تعيينات دور Azure ثم + إضافة تعيين دور (معاينة) لفتح صفحة إضافة تعيين دور (معاينة).

    إضافة تعيينات الدور في المدخل للهوية التي يعينها المستخدم.

  11. حدد القيم المناسبة.

    الخاصية الوصف
    Scope من القائمة المنسدلة، حدد Resource Group.
    الاشتراك يجب أن يتم ملء هذا الحقل تلقائياً مع اشتراكك.
    مجموعة الموارد من القائمة المنسدلة، حدد مجموعة الموارد لمنح أذونات الهوية.
    الدور من القائمة المنسدلة، حدد DevTest Labs User.
  12. حدد حفظ، ثم أغلق صفحة تعيينات الدور Azure للعودة إلى علامة التبويب تعيين النظام.

إنشاء دفتر تشغيل جديد

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

إشعار

مع إنشاء دفتر تشغيل لديه تجربة جديدة في مدخل Microsoft Azure. عند تحديد شفرة >Runbooks Create a runbook، يتم فتح صفحة جديدة Create a runbook مع الخيارات القابلة للتطبيق.

  1. من صفحة حساب التنفيذ التلقائي المفتوحة، ضمن التنفيذ التلقائي للعمليات، حدد Runbooks

    إنشاء دفتر تشغيل PowerShell workflow من المدخل

  2. حدد + إنشاء دفتر تشغيل.

    1. قم بتسمية دفتر التشغيل. على سبيل المثال، اختبار.
    2. من القائمة المنسدلة نوع دفتر التشغيل، حدد PowerShell Workflow.
    3. من القائمة المنسدلة إصدار وقت التشغيل، حدد 5.1.
    4. أدخل الوصف القابل للتطبيق.
    5. حدد إنشاء.

    خيارات دفتر تشغيل PowerShell workflow من المدخل

إضافة التعليمات البرمجية إلى دفتر التشغيل

يمكنك إما كتابة التعليمات البرمجية مباشرة في دفتر التشغيل، أو يمكنك تحديد cmdlets ودفاتر التشغيل والأصول من عنصر تحكم المكتبة وإضافتها إلى دفتر التشغيل مع أي معلمات ذات صلة. ولهذا البرنامج التعليمي، يمكنك كتابة التعليمات البرمجية مباشرة في دفتر التشغيل.

دفتر التشغيل الخاص بك فارغ حالياً من أي شيء ما عدا Workflow الكلمة الأساسية المطلوبة فقط، واسم دفتر التشغيل، والأقواس التي تغلف سير العمل بأكمله.

Workflow MyFirstRunbook-Workflow
{
}
  1. يمكنك استخدام Parallel الكلمة الأساسية لإنشاء كتلة برنامج نصي مع أوامر متعددة سيتم تشغيلها بشكل متزامن. أدخل التعليمات البرمجية التالية بين الأقواس:

    Parallel {
         Write-Output "Parallel"
         Get-Date
         Start-Sleep -s 3
         Get-Date
     }
    
    Write-Output " `r`n"
    Write-Output "Non-Parallel"
    Get-Date
    Start-Sleep -s 3
    Get-Date
    
  2. احفظ دفتر التشغيل بتحديد "Save".

اختبار دفتر التشغيل

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

  1. حدد جزء الاختبار لفتح جزء الاختبار.

  2. انقر فوق "Start" لبدء الاختبار. يتم إنشاء مهمة دفتر التشغيل ويتم عرض حالتها في الجزء.

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

  3. عند اكتمال مهمة دفتر التشغيل، تعرض صفحة الاختبار الإخراج الخاص بها. يجب أن يبدو الإخراج مشابهاً للصورة التالية:

    الإخراج الموازي لدفتر تشغيل PowerShell workflow

    راجع الإخراج. كل شيء في Parallel الكتلة، بما في ذلك Start-Sleep الأمر، نُفذ في الوقت نفسه. تم تشغيل الأوامر نفسها خارج Parallel الكتلة بشكل تسلسلي، كما هو موضح في الطوابع الزمنية للتاريخ المختلفة.

  4. أغلق صفحة "Test" للعودة إلى اللوحة.

نشر دفتر التشغيل وبدء تشغيله

لا يزال دفتر التشغيل الذي أنشأته في وضع المسودة. يجب نشرها قبل أن تتمكن من تشغيلها في الإنتاج. عند نشر دفتر تشغيل، تتم الكتابة فوق الإصدار المنشور حالياً مع إصدار المسودة. في هذه الحالة، لا يتوفر لديك إصدار منشور بعد؛ لأنك قمت بإنشاء دفتر التشغيل للتو.

  1. حدد "Publish" لنشر دفتر التشغيل ثم "Yes" عند مطالبتك بالنشر.

  2. يعرض حقل "Status" الآن "Published". راجع الخيارات عبر الجزء العلوي التي تسمح لك بتشغيل دفتر التشغيل الآن، أو جدولة وقت بدء مستقبلي، أو إنشاء webhook بحيث يمكن بدء تشغيل دفتر التشغيل من خلال اتصال HTTP. حدد "Start" ثم "Yes" عند مطالبتك بتشغيل دفتر التشغيل.

    صفحة نظرة عامة حول دفتر تشغيل PowerShell workflow

  3. تفتح صفحة "Job" لمهمة دفتر التشغيل التي تم إنشاؤها. في هذه الحالة، اترك الصفحة مفتوحة حتى تتمكن من مشاهدة تقدم المهمة. يطابق حقل "Status" الحالات التي شاهدتها عند اختبار دفتر التشغيل.

    لقطة شاشة لصفحة وظيفة دفتر التشغيل.

  4. بمجرد أن تصبح حالة دفتر التشغيل "Completed"، انقر فوق "Output". يجب أن يبدو الإخراج مشابهاً لإخراج الاختبار.

  5. أغلق صفحة "Job" للعودة إلى صفحة "Overview" الخاصة بدفتر التشغيل.

  6. ضمن "Resources"، حدد "Jobs". تسرد هذه الصفحة كل المهام التي تم إنشاؤها بواسطة دفتر التشغيل الخاص بك. يجب أن تشاهد مهمة واحدة مدرجة، إذ إنك قمت بتشغيل الوظيفة مرة واحدة فقط.

  7. حدد المهمة لفتح نفس صفحة "Job" التي قمت بعرضها عند بدء تشغيل دفتر التشغيل. استخدم هذه الصفحة لعرض تفاصيل أي مهمة تم إنشاؤها لدفتر التشغيل. أغلق صفحة "Job" للعودة إلى صفحة "Overview" الخاصة بدفتر التشغيل.

إضافة المصادقة لإدارة موارد Azure

لقد اختبرت ونشرت دفتر التشغيل الخاص بك، ولكنه حتى الآن لا يقدم أي شيء مفيد. وأنت ترغب في أن يقوم بإدارة موارد Azure. ولا يمكنه القيام بذلك ما لم تتم مصادقته باستخدام بيانات اعتماد الاشتراك. يستخدم دفتر التشغيل الهوية المدارة المعينة من قِبل النظام لحساب التنفيذ التلقائي للمصادقة مع Azure لتنفيذ إجراء الإدارة مقابل VM. يمكن تعديل دفتر التشغيل بسهولة لاستخدام هوية مدارة معينة من قِبل المستخدم.

  1. حدد "Overview" ثم "Edit" لفتح محرر النص.

  2. استبدل التعليمات البرمجية الموجودة بالآتي:

    workflow MyFirstRunbook-Workflow
    {
    $resourceGroup = "resourceGroupName"
    
    # Ensures you do not inherit an AzContext in your runbook
    Disable-AzContextAutosave -Scope Process
    
    # Connect to Azure with system-assigned managed identity
    Connect-AzAccount -Identity
    
    # set and store context
    $AzureContext = Set-AzContext –SubscriptionId "<SubscriptionID>"
    }
    

    تحرير $resourceGroup المتغير بقيمة صالحة تمثل مجموعة الموارد الخاصة بك.

  3. إذا كنت تريد تشغيل دفتر التشغيل للتنفيذ مع هوية مدارة معينة من قِبل النظام، اترك التعليمات البرمجية كما هي. إذا كنت تفضل استخدام الهوية المدارة المعينة من قِبل المستخدم، بعد ذلك:

    1. من السطر 9، قم بإزالة Connect-AzAccount -Identity،
    2. استبدله بـ Connect-AzAccount -Identity -AccountId <ClientId>، و
    3. أدخل معرف العميل الذي حصلت عليه سابقاً.
  4. حدد "Save" ثم "Test pane".

  5. انقر فوق "Start" لبدء الاختبار. بمجرد اكتماله، سترى الإخراج مشابهاً لما يلي بحيث يتم عرض المعلومات الأساسية من حسابك. يؤكد هذا الإجراء صحة بيانات الاعتماد.

    المعلومات الأساسية التي تؤكد بيانات الاعتماد.

  6. أغلق صفحة "Test" للعودة إلى اللوحة.

إضافة تعليمات برمجية لبدء تشغيل جهاز ظاهري

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

  1. إضافة التعليمات البرمجية أدناه كخط أخير مباشرةً قبل قوس الإغلاق. استبدل VMName بالاسم الفعلي لـ VM.

    Start-AzVM -Name "VMName" -ResourceGroupName $resourceGroup -DefaultProfile $AzureContext
    
  2. اختبر دفتر التشغيل ثم تأكد من بدء تشغيل VM. ثم العودة إلى اللوحة.

إضافة معلمات الإدخال إلى دفتر التشغيل

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

  1. استبدال السطر 3، $resourceGroup = "resourceGroupName"، بما يلي:

    Param(
        [string]$resourceGroup,
        [string]$VMName
    )
    
  2. استبدال الأمر السابق Start-AzVM بما يلي:

    Start-AzVM -Name $VMName -ResourceGroupName $resourceGroup -DefaultProfile $AzureContext
    
  3. اختبر دفتر التشغيل ثم تأكد من بدء تشغيل VM. ثم العودة إلى اللوحة.

إدارة عدة VMs في وقت واحد

يمكنك استخدام ForEach -Parallel البناء لمعالجة الأوامر لكل عنصر في مجموعة في وقت واحد. مراجعة التعليمات البرمجية بحيث سيتم الآن تشغيل دفتر التشغيل:

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

    workflow MyFirstRunbook-Workflow
    {
       Param(
           [string]$resourceGroup,
           [string[]]$VMs,
           [string]$action
       )
    
       # Ensures you do not inherit an AzContext in your runbook
       Disable-AzContextAutosave -Scope Process
    
       # Connect to Azure with system-assigned managed identity
       Connect-AzAccount -Identity
    
       # set and store context
       $AzureContext = Set-AzContext –SubscriptionId "<SubscriptionID>"
    
       # Start or stop VMs in parallel
       if ($action -eq "Start") {
           ForEach -Parallel ($vm in $VMs)
           {
               Start-AzVM -Name $vm -ResourceGroupName $resourceGroup -DefaultProfile $AzureContext
           }
       }
       elseif ($action -eq "Stop") {
           ForEach -Parallel ($vm in $VMs)
           {
               Stop-AzVM -Name $vm -ResourceGroupName $resourceGroup -DefaultProfile $AzureContext -Force
           }
       }
       else {
           Write-Output "`r`n Action not allowed. Please enter 'stop' or 'start'."
       }
       }
    
  2. إذا كنت تريد تشغيل دفتر التشغيل للتنفيذ مع هوية مدارة معينة من قِبل النظام، اترك التعليمات البرمجية كما هي. إذا كنت تفضل استخدام الهوية المدارة المعينة من قِبل المستخدم، بعد ذلك:

    1. من السطر 9، قم بإزالة Connect-AzAccount -Identity،
    2. استبدله بـ Connect-AzAccount -Identity -AccountId <ClientId>، و
    3. أدخل معرف العميل الذي حصلت عليه سابقاً.
  3. حدد "Save"، ثم "Publish"، ثم "Yes" عند المطالبة.

  4. من صفحة "Overview" حدد "Start".

  5. ملء المعلمات ثم حدد "OK".

    المعلمة ‏‏الوصف‬
    RESOURCEGROUP أدخل اسم مجموعة الموارد الخاصة بـ VMs.
    أجهزة ظاهرية أدخل أسماء الأجهزة الظاهرية باستخدام بناء الجملة التالي: ["VM1","VM2","VM3"]
    الإجراء أدخل stop أو start.
  6. انتقل إلى قائمة الأجهزة الظاهرية الخاصة بك وتحديث الصفحة كل بضع ثوانٍ. لاحظ أن الإجراء لكل VM يحدث بالتوازي. دون -Parallel الكلمة الأساسية، كان يمكن تنفيذ الإجراءات بشكل تسلسلي. بينما سيبدأ VMs بشكل متتابع، قد يصل كل جهاز VM إلى مرحلة "Running" في أوقات مختلفة قليلاً استناداً إلى خصائص كل جهاز VM.

تنظيف الموارد

إذا كنت لن تستمر في استخدام دفتر التشغيل هذا، فاحذفه عن طريق الخطوات التالية:

  1. انتقل إلى حساب التنفيذ التلقائي الخاص بك.
  2. ضمن "Process Automation"، حدد "Runbooks".
  3. حدد دفتر التشغيل.
  4. من صفحة "Overview" لدفتر التشغيل، حدد "Delete".

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

في هذا البرنامج التعليمي، قمت بإنشاء دفتر تشغيل PowerShell workflow. لإلقاء نظرة على دفاتر تشغيل Python 3، راجع: