نقل مختبرات DevTest والجدول الزمني إلى منطقة أخرى

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

في هذه المقالة، ستتعرف على كيفية:

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

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

  • تأكد من أن الخدمات والميزات التي يستخدمها حسابك مدعومة في المنطقة المستهدفة.

  • بالنسبة إلى ميزات الإصدار الأولي، تأكد من أن اشتراكك مدرج في القائمة المسموح بها للمنطقة المستهدفة.

  • لا تقوم DevTest Labs بتخزين كلمات المرور أو عرضها من قالب ARM المصدر. تحتاج إلى معرفة كلمات المرور/الأسرار من أجل:

    • الأجهزة الظاهرية
    • البيانات السرية المخزنة
    • رموز PAT المميزة لمستودعات البيانات الاصطناعية الخاصة لنقل المستودعات الخاصة مع المعمل.
  • عند نقل جدول مختبر، تأكد من وجود جهاز ظاهري للحساب في المنطقة المستهدفة.

نقل معمل

يصف القسم التالي كيفية إنشاء قالب ARM وتخصيصه لنقل مختبر من منطقة إلى أخرى.

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

الاستعداد لنقل مختبر

عند نقل مختبر، هناك بعض الخطوات التي يجب عليك اتخاذها للتحضير لهذه الخطوة. تحتاج إلى:

  • إعداد الشبكة الظاهرية
  • تصدير قالب ARM للمختبر
  • تعديل القالب
  • نشر القالب لنقل المعمل
  • تكوين المعمل الجديد
  • تبديل أقراص نظام التشغيل لأجهزة Compute الظاهرية ضمن الأجهزة الظاهرية الجديدة
  • تنظيف المختبر الأصلي

إعداد الشبكة الظاهرية

للبدء، قم بتصدير قالب ARM وتعديله.

  1. قم بتسجيل الدخول إلى بوابة Azure.

  2. إذا لم يكن لديك مجموعة موارد ضمن المنطقة المستهدفة، فانشأ واحدة الآن.

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

    بدلاً من ذلك، يمكنك إنشاء شبكة ظاهرية جديدة، إذا لم يكن عليك الاحتفاظ بالشبكة الأصلية.

تصدير قالب ARM للمختبر

بعد ذلك، يمكنك تصدير قالب JSON يحتوي على الإعدادات التي تصف المختبر.

لتصدير قالب باستخدام مدخل Azure:

  1. حدد All resources، ثم حدد مجموعة الموارد للمعمل.

  2. حدد Export template.

  3. اختر تنزيل في قالب التصدير.

  4. حدد موقع الملف .zip الذي قمت بتنزيله من المدخل، وقم بفك ضغط الملف إلى مجلد من اختيارك.

    يحتوي هذا الملف المضغوط على ملفات .json التي تتضمن القالب والبرامج النصية لنشر القالب. يحتوي على جميع الموارد الموجودة ضمن المعمل الخاص بك المدرجة بتنسيق قالب ARM، باستثناء موارد معرض الصور المشتركة.

تعديل القالب

لكي يتم نشر قالب ARM بشكل صحيح في المنطقة الجديدة، يجب تغيير بعض أجزاء القالب.

لتوزيع القالب باستخدام مدخل Microsoft Azure:

  1. في مدخل Azure، حدد Create a resource.

  2. في Search the Marketplace، اكتب template deployment، ثم اضغط على ENTER.

  3. حدد Template deployment.

    لقطة شاشة تعرض Azure Marketplace مع تحديد نشر القالب.

  4. حدد إنشاء.

  5. حدد Build your own template in the editor.

  6. حدد تحميل ملف، ثم اتّبع الإرشادات لتحميل template.json الذي نزّلته في القسم السابق.

  7. في المحرر، قم بإجراء التغييرات التالية على ملف template.json :

    1. استبدل location الأصلي بالمنطقة الجديدة التي تريد التوزيع فيها، مثل westus2، southeastasia، وما إلى ذلك. للحصول على رموز مواقع المنطقة، راجع Azure Locations. التعليمات البرمجية لمنطقة ما هي اسم المنطقة بدون مسافات، وسط الولايات المتحدة = centralus.

      "variables": {},
      "resources": [
        {
          "type": "microsoft.devtestlab/labs",
          "location": "centralus",
      
    2. إذا كان لديك "كافة الأجهزة الظاهرية في مجموعة موارد واحدة" معينة في "إعدادات المختبر"، فقم أيضا بتحديث القيم التالية في قالب ARM:

      • تحديث apiVersion من المورد microsoft.devtestlab/labs إلى 2018-10-15-preview.
      • أضف vmCreationResourceGroupId إلى القسم properties.
      "variables": {},
      "resources": [
        {
          "type": "microsoft.devtestlab/labs",
          "apiVersion": "2018-10-15-preview",
          "name": "[parameters('labs_lj_dtl_rgsettings_name')]",
          "location": "<regionName>",
          "properties": {
            "vmCreationResourceGroupId": "/subscriptions/<subscriptionID>/resourceGroups/<myResourceGroup>",
            "labStorageType": "Premium",
      
    3. ابحث عن المورد "type": "microsoft.devtestlab/labs/users". هناك، قم بإزالة القسم secretStore، بما في ذلك معلمات keyVaultld وkeyVaultUri.

      secretStore": {
        "keyVaultUri": "<vaultvalue>"
        "keyVaultld": "<id>"
      }
      
    4. ابحث عن المورد "type": "microsoft.devtestlab/labs/virtualnetworks". إذا قمت بإنشاء شبكة ظاهرية جديدة في وقت سابق من هذه الخطوات، يجب إضافة اسم الشبكة الفرعية الفعلي في /subnets/[SUBNET_NAME]. إذا اخترت نقل الشبكة الظاهرية إلى منطقة جديدة، يجب تخطي هذه الخطوة.

    5. ابحث عن المورد "type": "microsoft.devtestlab/labs/virtualmachines".

      1. ضمن "properties" (الخصائص)، أضف "password": "RANDOM_PASSWORD"

        إشعار

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

      2. بالنسبة لأجهزة IP الظاهرية المشتركة، أضف هذه القصاصة البرمجية ضمن "properties.networkInterface"،

        Windows VM مع RDP:

        "networkInterface": {
          "sharedPublicIpAddressConfiguration": {
            "inboundNatRules": [
              {
                "transportProtocol": "tcp",
                "backendPort": 3389
              }
            ]
          }
        }
        

        Linux VM مع SSH:

         "networkInterface": {
            "sharedPublicIpAddressConfiguration": {
              "inboundNatRules": [
                {
                  "transportProtocol": "tcp",
                  "backendPort": 22
                }
              ]
            }
          }
        
    6. ضمن الموارد microsoft.devtestlab/labs/users/secrets، المعلمة التالية "properties". استبدال YOUR_STORED_PASSWORD بكلمة مرورك.

      هام

      استخدم secureString لقيم كلمة المرور.

      "value": "YOUR_STORED_PASSWORD"
      
    7. ضمن الموارد microsoft.devtestlab/labs/artifactsources، المعلمة التالية "properties". استبدال YOUR_STORED_PASSWORD بكلمة مرورك. استخدم secureString لقيم كلمة المرور.

      "securityToken": "YOUR_PAT_TOKEN_VALUE"
      
    8. في المحرر، احفظ القالب.

نشر القالب لنقل المعمل

توزيع القالب لإنشاء معمل جديد في المنطقة المستهدفة.

  1. في صفحة النشر المخصص، قم بتحديث جميع المعلمات بالقيم المقابلة المحددة في القالب.

  2. أدخل القيم التالية:

    الاسم القيمة‬
    الاشتراك تحديد اشتراك Azure.
    مجموعة الموارد حدد اسم مجموعة الموارد الذي قمت بإنشائه في القسم السابق.
    Location حدد موقعًا للمعمل. على سبيل المثال، وسط الولايات المتحدة.
    اسم المعمل يجب أن يكون اسمًا مختلفًا.
    معرف الشبكة الظاهرية يجب أن يكون هو الذي تم نقله أو الجديد الذي قمت بإنشائه.
  3. حدد "Review + create".

  4. حدد إنشاء.

  5. حدد أيقونة الجرس (الإعلامات) من أعلى الشاشة لمعرفة حالة النشر. يجب أن ترى رسالة Deployment in progress. انتظر حتى اكتمال النشر.

تكوين المعمل الجديد

بينما تم نسخ معظم موارد Lab نسخًا متماثلًا ضمن المنطقة الجديدة باستخدام قالب ARM، لا تزال هناك بعض عمليات التحرير التي تحتاج إلى نقلها يدويًا.

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

تبديل أقراص نظام التشغيل لأجهزة Compute الظاهرية ضمن الأجهزة الظاهرية الجديدة

لاحظ أن الأجهزة الظاهرية ضمن المعمل الجديد لها نفس المواصفات مثل تلك الموجودة ضمن المعمل القديم. الفرق الوحيد هو أقراص نظام التشغيل.

  1. إنشاء قرص فارغ ضمن المنطقة الجديدة.

    • احصل على اسم قرص Compute VM OS الهدف ضمن المعمل الجديد. يمكنك العثور على Compute VM وقرصه ضمن مجموعة الموارد في صفحة الجهاز الظاهري للمختبر.

    • استخدم AzCopy لنسخ محتوى القرص القديم إلى الأقراص الجديدة/الفارغة في المنطقة الجديدة. يمكنك تشغيل أوامر PowerShell من Dev Box أو من Azure Cloud Shell.

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

      # Fill in the source/target disk names and their resource group names
      $sourceDiskName = "SOURCE_DISK"
      $sourceRG = "SOURCE_RG"
      $targetDiskName = "TARGET_DISK"
      $targetRG = "TARGET_RG"
      $targetRegion = "TARGET_LOCATION"
      
      # Create an empty target disk from the source disk
      $sourceDisk = Get-AzDisk -ResourceGroupName $sourceRG -DiskName $sourceDiskName
      $targetDiskconfig = New-AzDiskConfig -SkuName $sourceDisk.Sku.Name -UploadSizeInBytes $($sourceDisk.DiskSizeBytes+512) -Location $targetRegion -OsType $sourceDisk.OsType -CreateOption 'Upload'
      $targetDisk = New-AzDisk -ResourceGroupName $targetRG -DiskName $targetDiskName -Disk $targetDiskconfig
      
      # Copy the disk content from source to target
      $sourceDiskSas = Grant-AzDiskAccess -ResourceGroupName $sourceRG -DiskName $sourceDiskName -DurationInSecond 1800 -Access 'Read'
      $targetDiskSas = Grant-AzDiskAccess -ResourceGroupName $targetRG -DiskName $targetDiskName -DurationInSecond 1800 -Access 'Write'
      azcopy copy $sourceDiskSas.AccessSAS $targetDiskSas.AccessSAS --blob-type PageBlob
      Revoke-AzDiskAccess -ResourceGroupName $sourceRG -DiskName $sourceDiskName
      Revoke-AzDiskAccess -ResourceGroupName $targetRG -DiskName $targetDiskName
      

      بعد ذلك، سيكون لديك قرص جديد ضمن المنطقة الجديدة.

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

نقل جدول زمني

ثمة طريقتان لنقل الجداول:

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

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

  1. قم بتسجيل الدخول إلى بوابة Azure.

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

  3. في صفحة Resource Group Overview، ضمن Resources، حدد Show hidden types.

  4. حدد جميع الموارد بنوع microsoft.devtestlab/schedules.

  5. حدد Export template.

    لقطة شاشة توضح الموارد الخفية في مجموعة الموارد عن طريق تحديد الجداول.

  6. في صفحة Export resource group template، حدد Deploy.

  7. في صفحة Custom deployment، حدد Edit template.

  8. في التعليمة البرمجية للقالب، قم بتغيير جميع المثيلات من "location": "<old location>" إلى "location": "<new location>" ثم حدد Save.

  9. في صفحة Custom deployment، أدخل القيم التي تتوافق مع الجهاز الظاهري الهدف:

    الاسم القيمة‬
    الاشتراك تحديد اشتراك Azure.
    مجموعة الموارد حدد اسم مجموعة الموارد.
    المنطقة حدد موقعاً لجدول المختبر. على سبيل المثال، وسط الولايات المتحدة.
    Schedule Name يجب أن يكون اسماً فريداً عمومياً.
    VirtualMachine_xxx_externalId يجب أن يكون الجهاز الظاهري الهدف.

    لقطة شاشة توضح صفحة «the custom deployment» بقيم جديدة للموقع للإعدادات ذات الصلة.

    هام

    يجب أن يكون لكل جدول اسم فريد عمومي؛ لذا ستحتاج إلى تغيير اسم الجدول للموقع الجديد.

  10. حدد Review and create لإنشاء التوزيع.

  11. عند اكتمال التوزيع، تحقق من تكوين الجدول الجديد بشكل صحيح على جهاز ظاهري جديد.

تجاهل أو نظف

بعد التوزيع، إذا كنت تريد البدء من جديد، يمكنك حذف حساب التخزين الهدف، وتكرار الخطوات الموضحة في قسمي الإعداد والنقل في هذه المقالة.

لتنفيذ التغييرات وإكمال النقل، يجب حذف المعمل الأصلي.

لإزالة معمل باستخدام مدخل Microsoft Azure:

  1. في "Azure portal"، يمكنك توسيع القائمة على الجانب الأيسر لفتح قائمة الخدمات، واختيار DevTest Labs لعرض قائمة المعامل.

  2. حدد موقع المعمل المستهدف المراد حذفه، وانقر بزر الماوس الأيمن فوق زر More (...) على الجانب الأيمن من القائمة.

  3. حدد حذف، ثم قم بالتأكيد.

يمكنك أيضا اختيار تنظيف الجداول الأصلية إذا لم تعد مستخدمة. انتقل إلى مجموعة موارد للجداول الأصلية (إذ قمت بتصدير القوالب منها في الخطوة 5 أعلاه) واحذف مورد الجدول.

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

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