تعليمي: إنشاء صور Windows VM باستخدام Azure PowerShell

ينطبق على: ✔️ أجهزة Windows الظاهرية ✔️ مجموعات التوسعة المرنة

يمكن استخدام الصور في عمليات النشر التمهيدية وضمان الاتساق عبر أجهزة ظاهرية متعددة. في هذا البرنامج التعليمي، يمكنك إنشاء صورتك المتخصصة لجهاز Azure ظاهري باستخدام PowerShell وتخزينها في معرض حساب Azure (المعروف سابقًا باسم Shared Image Gallery). ستتعرف على كيفية:

  • إنشاء Azure Compute Gallery
  • إنشاء تعريف للصورة
  • إنشاء إصدار الصورة
  • إنشاء جهاز ظاهري من الصورة
  • مشاركة معرض

قبل أن تبدأ

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

لإكمال المثال في هذا البرنامج التعليمي، يجب أن يكون لديك جهاز ظاهري موجود. إذا لزم الأمر، يمكنك مشاهدة التشغيل السريع لـ PowerShell لإنشاء جهاز ظاهري لاستخدامه في هذا البرنامج التعليمي. عند العمل من خلال البرنامج التعليمي، استبدل أسماء الموارد عند الحاجة.

نظرة عامة

يسهل Shared Image Gallery مشاركة الصور المخصصة عبر مؤسستك. الصور المخصصة هي مثل صور السوق، ولكن يمكنك إنشاؤها بنفسك. يمكن استخدام الصور المخصصة لتمهيد تشغيل التكوينات مثل تطبيقات التحميل المسبق وتكوينات التطبيقات وغيرها من تكوينات نظام التشغيل.

يتيح لك معرض الحساب في Azure مشاركة صور VM المخصصة مع الآخرين. اختر الصور التي تريد مشاركتها والمناطق التي تريد إتاحتها فيها، والأشخاص الذين تريد مشاركتها معهم.

تحتوي ميزة معرض الحوسبة Azure على أنواع موارد متعددة:

مورد الوصف
⁩مصدر الصورة⁧ هذا مورد يمكن استخدامه لإنشاء نسخة صورة في معرض الصور. يمكن أن يكون مصدر الصورة عبارة عن Azure VM موجود إما معمم أو متخصص أو صورة مُدارة أو لقطة أو إصدار صورة في معرض آخر.
معرض مثل Azure Marketplace، يعتبر المعرض مستودعًا لإدارة ومشاركة الصور وتطبيقات VM،ولكن يمكنك التحكم في من لديه حق الوصول.
⁩تعريف الصورة⁧ يتم إنشاء تعريفات الصور داخل معرض ويتم تحميل معلومات حول الصورة ومتطلبات استخدامها داخليًا. وهذا يشمل ما إذا كانت الصورة Windows أو Linux، وملاحظات الإصدار، ومتطلبات الذاكرة الدنيا والقصوى. فهو تعريف لنوع من الصور.
⁩إصدار الصورة⁧ ⁩إصدار الصورة⁧⁩ هو ما تستخدمه لإنشاء جهاز افتراضي عند استخدام معرض. يمكنك الحصول على إصدارات متعددة من صورة حسب الحاجة للبيئة الخاصة بك. مثل الصورة المُدارة، عند استخدام ⁧⁩إصدار صورة⁧⁩ لإنشاء جهاز افتراضي، يتم استخدام إصدار الصورة لإنشاء أقراص جديدة لجهاز الظاهري. يمكن استخدام إصدارات الصور عدة مرات.

تشغيل Azure Cloud Shell

Azure Cloud Shell عبارة عن واجهة تفاعلية مجانية يُمكنك استخدامها لتنفيذ الخطوات الواردة في هذه المقالة. يحتوي على أدوات Azure الشائعة والمثبتة مسبقاً والتي تم تكوينها للاستخدام مع حسابك.

لفتح Cloud Shell، ما عليك سوى تحديد "Try it" من الزاوية العليا اليسرى لكتلة التعليمة البرمجية. يمكنك أيضاً تشغيل Cloud Shell في علامة تبويب مستعرض منفصلة بالانتقال إلى https://shell.azure.com/powershell. حدد "Copy" لنسخ كتل التعليمة البرمجية، ولصقها في Cloud Shell، ثم اضغط على "enter" لتشغيلها.

الحصول على جهاز ظاهري

يمكنك مشاهدة قائمة بالأجهزة الظاهرية المتوفرة في مجموعة موارد باستخدام Get-AzVM. بمجرد معرفة اسم الجهاز الظاهري ومجموعة الموارد، يمكنك استخدام Get-AzVM مرة أخرى للحصول على كائن الجهاز الظاهري وتخزينه في متغير لاستخدامه لاحقًا. يحصل هذا المثال على جهاز ظاهري يسمى sourceVM من مجموعة موارد myResourceGroup ويعينه إلى المتغير $sourceVM.

$sourceVM = Get-AzVM `
   -Name sourceVM `
   -ResourceGroupName myResourceGroup

قم بإنشاء مجموعة موارد

أنشئ مجموعة موارد باستخدام الأمر New-AzResourceGroup.

مجموعة موارد Azure هي حاوية منطقية يتم بها نشر موارد Azure وإدارتها. في المثال التالي، يتم إنشاء مجموعة موارد تسمى myGalleryRG في منطقة EastUS:

$resourceGroup = New-AzResourceGroup `
   -Name 'myGalleryRG' `
   -Location 'EastUS'

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

إنشاء معرض الصور باستخدام New-AzGallery. ينشئ المثال التالي معرضًا يسمى myGallery في مجموعة موارد myGalleryRG.

$gallery = New-AzGallery `
   -GalleryName 'myGallery' `
   -ResourceGroupName $resourceGroup.ResourceGroupName `
   -Location $resourceGroup.Location `
   -Description 'Azure Compute Gallery for my organization'	

إنشاء تعريف للصورة

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

إنشاء تعريف الصورة باستخدام New-AzGalleryImageDefinition. في هذا المثال، يتم تسمية صورة المعرض myGalleryImage ويتم إنشاؤها لصورة متخصصة.

$galleryImage = New-AzGalleryImageDefinition `
   -GalleryName $gallery.Name `
   -ResourceGroupName $resourceGroup.ResourceGroupName `
   -Location $gallery.Location `
   -Name 'myImageDefinition' `
   -OsState specialized `
   -OsType Windows `
   -Publisher 'myPublisher' `
   -Offer 'myOffer' `
   -Sku 'mySKU'

إنشاء إصدار الصورة

إنشاء إصدار صورة من جهاز ظاهري باستخدام New-AzGalleryImageVersion.

الأحرف المسموح بها لإصدار الصورة هي أرقام وفترات. يجب أن تكون الأرقام ضمن نطاق عدد صحيح 32 بت. التنسيق: MajorVersion.MinorVersion.Patch.

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

لإنشاء إصدار صورة من الجهاز الظاهري، استخدم $vm.Id.ToString() لـ -Source.

   $region1 = @{Name='South Central US';ReplicaCount=1}
   $region2 = @{Name='East US';ReplicaCount=2}
   $targetRegions = @($region1,$region2)

New-AzGalleryImageVersion `
   -GalleryImageDefinitionName $galleryImage.Name`
   -GalleryImageVersionName '1.0.0' `
   -GalleryName $gallery.Name `
   -ResourceGroupName $resourceGroup.ResourceGroupName `
   -Location $resourceGroup.Location `
   -TargetRegion $targetRegions  `
   -Source $sourceVM.Id.ToString() `
   -PublishingProfileEndOfLifeDate '2030-12-01'

قد يستغرق الأمر بعض الوقت لنسخ الصورة إلى جميع المناطق المستهدفة.

إنشاء الجهاز الظاهري

بمجرد الحصول على صورة متخصصة، يمكنك إنشاء واحد أو أكثر من أجهزة ظاهرية جديدة. باستخدام New-AzVM cmdlet. لاستخدام الصورة، استخدم Set-AzVMSourceImage وقم بتعيين -Id على معرف تعريف الصورة ($galleryImage.Id في هذه الحالة) لاستخدام أحدث إصدار للصورة دائمًا.

استبدل أسماء الموارد حسب الحاجة في هذا المثال.

# Create some variables for the new VM.
$resourceGroup = "myResourceGroup"
$location = "South Central US"
$vmName = "mySpecializedVM"

# Create a resource group
New-AzResourceGroup -Name $resourceGroup -Location $location

# Create the network resources.
$subnetConfig = New-AzVirtualNetworkSubnetConfig -Name mySubnet -AddressPrefix 192.168.1.0/24
$vnet = New-AzVirtualNetwork -ResourceGroupName $resourceGroup -Location $location `
  -Name MYvNET -AddressPrefix 192.168.0.0/16 -Subnet $subnetConfig
$pip = New-AzPublicIpAddress -ResourceGroupName $resourceGroup -Location $location `
  -Name "mypublicdns$(Get-Random)" -AllocationMethod Static -IdleTimeoutInMinutes 4
$nsgRuleRDP = New-AzNetworkSecurityRuleConfig -Name myNetworkSecurityGroupRuleRDP  -Protocol Tcp `
  -Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * `
  -DestinationPortRange 3389 -Access Deny
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $resourceGroup -Location $location `
  -Name myNetworkSecurityGroup -SecurityRules $nsgRuleRDP
$nic = New-AzNetworkInterface -Name $vmName -ResourceGroupName $resourceGroup -Location $location `
  -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -NetworkSecurityGroupId $nsg.Id

# Create a virtual machine configuration using $imageVersion.Id to specify the image version.
$vmConfig = New-AzVMConfig -VMName $vmName -VMSize Standard_D1_v2 | `
Set-AzVMSourceImage -Id $galleryImage.Id | `
Add-AzVMNetworkInterface -Id $nic.Id

# Create a virtual machine
New-AzVM -ResourceGroupName $resourceGroup -Location $location -VM $vmConfig

نوصي بمشاركة الوصول على مستوى المعرض. استخدام عنوان بريد إلكتروني وGet-AzADUser cmdlet للحصول على معرف الكائن للمستخدم، ثم استخدم New-AzRoleAssignment لمنحهم حق الوصول إلى المعرض. استبدل مثال البريد الإلكتروني، alinne_montes@contoso.com في هذا المثال، بمعلوماتك الخاصة.

# Get the object ID for the user
$user = Get-AzADUser -StartsWith alinne_montes@contoso.com
# Grant access to the user for our gallery
New-AzRoleAssignment `
   -ObjectId $user.Id `
   -RoleDefinitionName Reader `
   -ResourceName $gallery.Name `
   -ResourceType Microsoft.Compute/galleries `
   -ResourceGroupName $resourceGroup.ResourceGroupName

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

عند انتهاء الحاجة إليها، يمكنك استخدام Remove-AzResourceGroup cmdlet لإزالة مجموعة الموارد وجميع الموارد ذات الصلة:

# Delete the gallery 
Remove-AzResourceGroup -Name myGalleryRG

# Delete the VM
Remove-AzResourceGroup -Name myResoureceGroup

Azure Image Builder

يقدم Azure أيضًا خدمة، مبنية على Packer، Azure VM Image Builder. ما عليك سوى وصف تخصيصاتك في قالب، وسوف يتعامل مع إنشاء الصورة.

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

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

  • إنشاء Azure Compute Gallery
  • إنشاء تعريف للصورة
  • إنشاء إصدار الصورة
  • إنشاء جهاز ظاهري من الصورة
  • مشاركة معرض

تقدم إلى البرنامج التعليمي التالي للتعرف على مجموعات مقياس الجهاز الظاهري.