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

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

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

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

قبل البدء

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

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

نظرة عامة

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

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

تحتوي ميزة Azure Compute Gallery على أنواع موارد متعددة:

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

إطلاق Azure Cloud Shell

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

لفتح Cloud Shell، ما عليك سوى تحديد جربه من الزاوية اليمنى العليا من مجموعة التعليمات البرمجية. يمكنك أيضًا تشغيل 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
  • إنشاء تعريف للصورة
  • إنشاء إصدار صورة
  • إنشاء جهاز ظاهري من صورة
  • مشاركة معرض

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