دمج DevTest Labs في مسارات تدفق Azure

يمكنك استخدام ملحق Azure DevTest Labs Tasks لدمج Azure DevTest Labs في مسارات تدفق التكامل والتسليم المستمر (CI/CD) لمسارات تدفق Azure. يثبت الملحق عدة مهام في مسارات تدفق Azure، بما في ذلك:

  • إنشاء جهاز ظاهري (VM)
  • قم بإنشاء صورة مخصصة من جهاز ظاهري
  • حذف جهاز ظاهري

تسهل هذه المهام، على سبيل المثال، توزيع جهاز ظاهري ذي صورة ذهبية، وتشغيل اختبار محدد، ثم حذف الجهاز الظاهري.

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

الشروع في العمل باستخدام Azure DevTest Labs

هل أنت جديد في Azure؟ حساب Azure مجاني.

هل تستخدم Azure بالفعل؟ أنشئ مختبرك الأول وابدأ باستخدام Azure DevTest Labs في دقائق.

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

  • في مدخل Microsoft Azure، أنشئ معمل DevTest Labs، أو استخدم معملاً موجوداً.

  • سجل لأول مرة أو فم بتسجيل الدخول إلى مؤسسة Azure DevOps Services الخاصة بك، وأنشئ مشروعاً، أو استخدم مشروعاً موجوداً.

  • قم بتثبيت ملحق Azure DevTest Labs Tasks من Visual Studio Marketplace:

    1. انتقل إلى Azure DevTest Labs Tasks.
    2. حدد الحصول عليه مجانا.
    3. حدد مؤسسة Azure DevOps Services الخاصة بك من القائمة المنسدلة، ثم حدد Install.

إنشاء قالب لبناء معمل VM

أولاً، قم بإنشاء قالب Azure Resource Manager (ARM) الذي ينشئ جهاز ظاهري معمل عند الطلب.

  1. في المعمل الخاص بك في مدخل Microsoft Azure، حدد Add في شريط القوائم العلوي.
  2. في شاشة Choose a base، حدد صورة Windows الأساسية للجهاز الظاهري.
  3. في شاشة Create lab resource، ضمن Artifacts، حدد Add or Remove Artifacts.
  4. في شاشة Add artifacts، ابحث عن winrm، ثم حدد السهم بجوار تكوين WinRM.
  5. في جزء Add artifact، أدخل اسم مجال مؤهل بالكامل (FQDN) لـ VM، مثل contosolab00000000000000.westus3.cloudapp.azure.com. حدد موافق، ثم قم بتحديد موافق مرة أخرى.
  6. حدد علامة التبويب Advanced Settings، وبالنسبة إلى عنوان IP، حدد Public.

    إشعار

    إذا كنت تستخدم الأداة WinRM مع عنوان IP مشترك، فيجب عليك إضافة قاعدة ترجمة عنوان الشبكة (NAT) لتعيين منفذ خارجي إلى منفذ WinRM. لا تحتاج إلى قاعدة NAT إذا قمت بإنشاء الجهاز الظاهري بعنوان IP عام. لهذه الإرشادات، قم بإنشاء VM بعنوان IP عام.

  7. حدد View ARM template.
  8. انسخ تعليمة برمجية القالب واحفظه كملف باسم CreateVMTemplate.json في فرع التحكم بالمصادر المحلي.
  9. تحقق من القالب في نظام التحكم بالمصادر الخاص بمشروعك.

لمزيد من المعلومات والتفاصيل، راجع استخدام قالب Resource Manager.

قم بإنشاء برنامج نصي للحصول على خصائص VM

بعد ذلك، قم بإنشاء برنامج نصي لتجميع القيم التي تستخدمها خطوات المهمة مثل Azure File Copy وPowerShell on Target Machines لتوزيع التطبيقات على الأجهزة الافتراضية. عادة ما تستخدم هذه المهام لتوزيع تطبيقاتك الخاصة على أجهزة Azure الافتراضية الخاصة بك. تتطلب المهام قيماً مثل اسم مجموعة موارد الجهاز الظاهري وعنوان IP وFQDN.

إشعار

نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. للبدء، راجع تثبيت Azure PowerShell. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.

احفظ البرنامج النصي التالي باسم مثل GetLabVMParams.ps1، وقم بإيداعه في نظام التحكم في مصدر مشروعك.

Param( [string] $labVmId)

$labVmComputeId = (Get-AzResource -Id $labVmId).Properties.ComputeId

# Get lab VM resource group name
$labVmRgName = (Get-AzResource -Id $labVmComputeId).ResourceGroupName

# Get the lab VM Name
$labVmName = (Get-AzResource -Id $labVmId).Name

# Get lab VM public IP address
$labVMIpAddress = (Get-AzPublicIpAddress -ResourceGroupName $labVmRgName -Name $labVmName).IpAddress

# Get lab VM FQDN
$labVMFqdn = (Get-AzPublicIpAddress -ResourceGroupName $labVmRgName -Name $labVmName).DnsSettings.Fqdn

# Set a variable labVmRgName to store the lab VM resource group name
Write-Host "##vso[task.setvariable variable=labVmRgName;]$labVmRgName"

# Set a variable labVMIpAddress to store the lab VM Ip address
Write-Host "##vso[task.setvariable variable=labVMIpAddress;]$labVMIpAddress"

# Set a variable labVMFqdn to store the lab VM FQDN name
Write-Host "##vso[task.setvariable variable=labVMFqdn;]$labVMFqdn"

إنشاء مسار إصدار في Azure Pipelines

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

  1. من صفحة مشروع خدمات Azure DevOps، حدد Pipelines>الإصدارات من شريط التنقل الأيسر.
  2. حدد New pipeline.
  3. في جزء Select a template ، حدد Empty job.
  4. أغلق جزء Stage .
  5. في صفحة مسار الإصدار الجديد، حدد علامة التبويب Variables.
  6. حدد Add، وأدخل زوجي Name وValue التاليين، وحدد Add بعد إضافة كل منهما.
    • vmName: اسم الجهاز الظاهري الذي قمت بتعيينه في قالب ARM.
    • userName: اسم المستخدم للوصول إلى الجهاز الظاهري.
    • password: كلمة المرور لاسم المستخدم. حدد رمز القفل لإخفاء وتأمين كلمة المرور.

إضافة أداة

  1. في صفحة مسار الإصدار الجديد، في علامة التبويب Pipeline ، حدد Add an artifact.
  2. في جزء Add an artifact، حدد Azure Repo.
  3. في قائمة Project ، حدد مشروع DevOps الخاص بك.
  4. في قائمة المصدر (المستودع)، حدد مستودع المصدر.
  5. في قائمة الفرع الافتراضي، حدد الفرع الذي تريد سحبه.
  6. حدد إضافة.

قم بإنشاء جهاز DevTest Labs VM

تخلق الخطوة التالية صورة VM ذهبية لاستخدامها في عمليات التوزيع المستقبلية. تستخدم هذه الخطوة مهمة Azure DevTest Labs Create VM.

  1. في صفحة مسار الإصدار الجديد، في علامة التبويب Pipeline، حدد النص المرتبط تشعبياً في المرحلة 1.

  2. في الجزء الأيسر، حدد علامة الجمع + بجوار وظيفة العامل.

  3. ضمن إضافة مهام في الجزء الأيمن، ابحث عن وحدد Azure DevTest Labs Create VM، وحدد Add.

  4. في الجزء الأيسر، حدد مهمة Create Azure DevTest Labs VM.

  5. في الجزء الأيمن، املأ النموذج كما يلي:

    • اشتراك Azure RM: حدد اتصال الخدمة أو الاشتراك من القائمة المنسدلة، وحدد Authorize إذا لزم الأمر.

      إشعار

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

    • Lab: حدد اسم معمل DevTest Labs.

    • اسم الجهاز الظاهري: المتغير الذي حددته لاسم الجهاز الظاهري: $vmName.

    • قالب: تصفح وحدد ملف القالب الذي قمت بإيداعه في مستودع مشروعك.

    • ملف المعلمات: إذا قمت بالتحقق من ملف معلمات في المستودع الخاص بك، فاستعرض وحدده.

    • تجاوزات المعلمة: أدخل -newVMName '$(vmName)' -userName '$(userName)' -password '$(password)'.

    • في القائمة المنسدلة Output Variables، وضمن Reference name، أدخل المتغير لمعرف VM للمعمل الذي تم إنشاؤه. لندخل vm لاسم المرجع للتبسيط. سيكون labVmId سمة لهذا المتغير وسيشار إليه لاحقا باسم $vm.labVmId. إذا كنت تستخدم أي اسم آخر، فتذكر استخدامه وفقا لذلك في المهام اللاحقة.

      سيكون معرف الجهاز الظاهري للمختبر بالشكل التالي: /subscriptions/{subscription Id}/resourceGroups/{resource group Name}/providers/Microsoft.DevTestLab/labs/{lab name}/virtualMachines/{vmName}.

اجمع تفاصيل DevTest Labs VM

بعد ذلك، يقوم مسار التدفق بتشغيل البرنامج النصي الذي قمت بإنشائه لجمع تفاصيل DevTest Labs VM.

  1. في علامة التبويب مهام مسار الإصدار، حدد علامة الجمع + بجوار مهمة العامل.
  2. ضمن إضافة مهام في الجزء الأيمن، ابحث عن Azure PowerShellوحدده، وحدد Add.
  3. في الجزء الأيسر، حدد المهمة Azure PowerShell script: FilePath.
  4. في الجزء الأيسر، املأ النموذج كما يلي:
    • اشتراك Azure: حدد اتصال الخدمة أو الاشتراك الخاص بك.
    • نوع البرنامج النصي: حدد Script File Path.
    • مسار البرنامج النصي: تصفح وحدد البرنامج النصي PowerShell الذي قمت بإيداعه في مستودع كود المصدر. يمكنك استخدام الخصائص المضمنة لتبسيط المسار، على سبيل المثال: $(System.DefaultWorkingDirectory/Scripts/GetLabVMParams.ps1.
    • وسيطات البرنامج النصي: أدخل القيمة ك -labVmId $(vm.labVmId).

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

قم بإنشاء صورة VM من DevTest Labs VM

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

  1. في علامة التبويب مهام مسار الإصدار، حدد علامة الجمع + بجوار مهمة العامل.
  2. ضمن Add tasks، حدد Azure DevTest Labs Create Custom Image، وحدد Add.
  3. في الجزء الأيسر، حدد مهمة Azure DevTest Labs Create Custom Image.
  4. في الجزء الأيسر، املأ النموذج كما يلي:
    • اشتراك Azure RM: حدد اتصال الخدمة أو الاشتراك الخاص بك.
    • Lab: حدد معملك.
    • اسم صورة مخصص: أدخل اسماً للصورة المخصصة.
    • Description: أدخل وصفاً اختيارياً لتسهيل تحديد الصورة الصحيحة.
    • Source Lab VM: المصدر labVmId. أدخل القيمة ك $(vm.labVmId).
    • متغيرات الإخراج: يمكنك تعديل اسم متغير معرف الصورة المخصص الافتراضي إذا لزم الأمر.

قم بتوزيع تطبيقك في DevTest Labs VM (اختياري)

يمكنك إضافة مهام لتوزيع تطبيقك على جهاز DevTest Labs VM الجديد. إذا كنت ترغب فقط في تجربة إنشاء جهاز DevTest Labs VM وصورة مخصصة، من دون توزيع تطبيق، يمكنك تخطي هذه الخطوة.

المهام التي تستخدمها عادةً لتوزيع التطبيقات هي Azure File Copy وPowerShell on Target Machines. يمكنك العثور على معلومات VM التي تحتاجها لمعلمات المهمة في ثلاثة متغيرات تكوين تسمى labVmRgNameو labVMIpAddressو labVMFqdn ضمن مسار الإصدار.

حذف الجهاز الظاهري

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

  1. في علامة التبويب مهام مسار الإصدار، حدد علامة الجمع + بجوار مهمة العامل.
  2. ضمن إضافة مهام، حدد Azure DevTest Labs Delete VM، وحدد Add.
  3. تكوين المهمة كما يلي:
    • اشتراك Azure RM: حدد اتصال الخدمة أو الاشتراك الخاص بك.
    • Lab: حدد معملك.
    • الجهاز الظاهري: أدخل القيمة ك $(vm.labVmId).
    • متغيرات الإخراج: ضمن اسم المرجع، إذا قمت بتغيير الاسم الافتراضي للمتغير labVmId، فأدخله هنا. القيمة الافتراضية هي $ (labVmId).

احفظ تدفق التحرير

لحفظ مسار الإصدار الجديد:

  1. حدد New release pipeline أعلى صفحة تدفق الإصدار، وأدخل اسماً جديداً للمسار.
  2. حدد Save أعلى اليمين.

إنشاء وتشغيل إصدار

لإنشاء إصدار وتشغيله باستخدام مسار التدفق الجديد:

  1. في صفحة مسار الإصدار، حدد Create release أعلى اليمين.
  2. ضمن البيانات الاصطناعية، حدد أحدث إصدار، ثم حدد Create.

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

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

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