Öğretici: Azure PowerShell ile Windows VM görüntüleri oluşturma
Şunlar için geçerlidir: ✔️ Windows VM'leri ✔️ Esnek ölçek kümeleri
Görüntüler, dağıtımları önyüklemek ve birden çok VM arasında tutarlılık sağlamak için kullanılabilir. Bu öğreticide, PowerShell kullanarak bir Azure sanal makinesinin kendi özelleştirilmiş görüntüsünü oluşturacak ve bunu bir Azure İşlem Galerisi'nde (eski adıyla Paylaşılan Görüntü Galerisi) depolaacaksınız. Şunları yapmayı öğreneceksiniz:
- Azure İşlem Galerisi oluşturma
- Görüntü tanımı oluşturma
- Görüntü sürümü oluşturma
- Görüntüden VM oluşturma
- Galeriyi paylaşma
Başlamadan önce
Aşağıdaki adımlarda, mevcut vm'nin nasıl alınacağı ve yeni VM'ler oluşturmak için kullanabileceğiniz yeniden kullanılabilir bir özel görüntüye nasıl dönüştürülebileceği ayrıntılı olarak anlatılır.
Bu öğreticideki örneği tamamlamak için, mevcut bir sanal makinenizin olması gerekir. Gerekirse, bu öğreticide kullanılacak bir VM oluşturmak için PowerShell hızlı başlangıcını görebilirsiniz. Öğreticide çalışırken, gerektiğinde kaynak adlarını değiştirin.
Genel bakış
Azure İşlem Galerisi , kuruluşunuz genelinde özel görüntü paylaşımını basitleştirir. Özel görüntüler market görüntüleri gibidir, ancak bunları kendiniz oluşturursunuz. Özel görüntüler, uygulamaları, uygulama yapılandırmalarını ve diğer işletim sistemi yapılandırmalarını önceden yükleme gibi yapılandırmaları önyüklemek için kullanılabilir.
Azure İşlem Galerisi, özel VM görüntülerinizi başkalarıyla paylaşmanızı sağlar. Paylaşmak istediğiniz resimleri, hangi bölgelerde kullanılabilir hale getirmek istediğinizi ve kimlerle paylaşmak istediğinizi seçin.
Azure İşlem Galerisi özelliğinin birden çok kaynak türü vardır:
Kaynak | Açıklama |
---|---|
Görüntü kaynağı | Bu, galeride görüntü sürümü oluşturmak için kullanılabilecek bir kaynaktır. Görüntü kaynağı genelleştirilmiş veya özelleştirilmiş mevcut bir Azure VM'si, yönetilen görüntü, anlık görüntü veya başka bir galerideki görüntü sürümü olabilir. |
Galeri | Azure Market gibi galeri de görüntüleri ve VM uygulamalarını yönetmeye ve paylaşmaya yönelik bir depodur, ancak kimin erişimi olduğunu siz denetlersiniz. |
Görüntü tanımı | Görüntü tanımları bir galeri içinde oluşturulur ve görüntü ve iç kullanım gereksinimleri hakkında bilgi taşır. Bu, görüntünün Windows veya Linux olup olmadığını, sürüm notlarını ve en düşük ve en yüksek bellek gereksinimlerini içerir. Bir görüntü türünün tanımıdır. |
Görüntü sürümü | Görüntü sürümü, galeri kullanırken VM oluşturmak için kullandığınız sürümdür . Ortamınız için gerektiğinde görüntünün birden çok sürümüne sahip olabilirsiniz. Yönetilen görüntüde olduğu gibi, vm oluşturmak için bir görüntü sürümü kullandığınızda, vm için yeni diskler oluşturmak için görüntü sürümü kullanılır. Görüntü sürümleri birden çok kez kullanılabilir. |
Azure Cloud Shell'i başlatma
Azure Cloud Shell, bu makaledeki adımları çalıştırmak için kullanabileceğiniz ücretsiz bir etkileşimli kabuktur. Yaygın Azure araçları, kabuğa önceden yüklenmiştir ve kabuk, hesabınızla birlikte kullanılacak şekilde yapılandırılmıştır.
Cloud Shell'i açmak için kod bloğunun sağ üst köşesinden Deneyin'i seçmeniz yeterlidir. İsterseniz https://shell.azure.com/powershell adresine giderek Cloud Shell'i ayrı bir tarayıcı sekmesinde de başlatabilirsiniz. Kopyala’yı seçerek kod bloğunu kopyalayın, Cloud Shell’e yapıştırın ve Enter tuşuna basarak çalıştırın.
VM'yi alma
Get-AzVM kullanarak kaynak grubunda kullanılabilen VM'lerin listesini görebilirsiniz. VM adını ve hangi kaynak grubunu öğrendikte, VM nesnesini almak ve daha sonra kullanmak üzere bir değişkende depolamak için yeniden kullanabilirsiniz Get-AzVM
. Bu örnek, myResourceGroup kaynak grubundan sourceVM adlı bir VM alır ve bunu $sourceVM değişkenine atar.
$sourceVM = Get-AzVM `
-Name sourceVM `
-ResourceGroupName myResourceGroup
Kaynak grubu oluşturma
New-AzResourceGroup komutuyla bir kaynak grubu oluşturun.
Azure kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır. Aşağıdaki örnekte, EastUS bölgesinde myGalleryRG adlı bir kaynak grubu oluşturulur:
$resourceGroup = New-AzResourceGroup `
-Name 'myGalleryRG' `
-Location 'EastUS'
Galeri Oluştur
Galeri, görüntü paylaşımını etkinleştirmek için kullanılan birincil kaynaktır. Galeri adı için izin verilen karakterler büyük veya küçük harfler, basamaklar, noktalar ve noktalardır. Galeri adı tire içeremez. Galeri adları aboneliğinizde benzersiz olmalıdır.
New-AzGallery kullanarak bir galeri oluşturun. Aşağıdaki örnek, myGalleryRG kaynak grubunda myGallery adlı bir galeri oluşturur.
$gallery = New-AzGallery `
-GalleryName 'myGallery' `
-ResourceGroupName $resourceGroup.ResourceGroupName `
-Location $resourceGroup.Location `
-Description 'Azure Compute Gallery for my organization'
Görüntü tanımı oluşturma
Görüntü tanımları, görüntüler için mantıksal bir gruplandırma oluşturur. Bunlar, içinde oluşturulan görüntü sürümleri hakkındaki bilgileri yönetmek için kullanılır. Görüntü tanımı adları büyük veya küçük harflerden, basamaklardan, noktalardan, kısa çizgilerden ve noktalardan oluşabilir. Görüntü tanımı için belirtebileceğiniz değerler hakkında daha fazla bilgi için bkz . Görüntü tanımları.
New-AzGalleryImageDefinition komutunu kullanarak görüntü tanımını oluşturun. Bu örnekte galeri görüntüsü myGalleryImage olarak adlandırılır ve özel bir görüntü için oluşturulur.
$galleryImage = New-AzGalleryImageDefinition `
-GalleryName $gallery.Name `
-ResourceGroupName $resourceGroup.ResourceGroupName `
-Location $gallery.Location `
-Name 'myImageDefinition' `
-OsState specialized `
-OsType Windows `
-Publisher 'myPublisher' `
-Offer 'myOffer' `
-Sku 'mySKU'
Görüntü sürümü oluşturma
New-AzGalleryImageVersion kullanarak bir VM'den görüntü sürümü oluşturun.
Resim sürümü için izin verilen karakterler sayı ve noktadır. Sayılar 32 bitlik bir tamsayı aralığında olmalıdır. Biçim: MajorVersion.MinorVersion.Düzeltme eki.
Bu örnekte görüntü sürümü 1.0.0'dır ve hem Doğu ABD hem de Orta Güney ABD veri merkezlerine çoğaltılır. Çoğaltma için hedef bölgeleri seçerken, kaynak bölgeyi çoğaltma hedefi olarak eklemeniz gerekir.
VM'den görüntü sürümü oluşturmak için için -Source
kullanın$vm.Id.ToString()
.
$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'
Görüntüyü tüm hedef bölgelere çoğaltmak biraz zaman alabilir.
VM oluşturma
Özelleştirilmiş bir görüntüye sahip olduktan sonra bir veya daha fazla yeni VM oluşturabilirsiniz. New-AzVM cmdlet'ini kullanma. Görüntüyü kullanmak için öğesini kullanın Set-AzVMSourceImage
ve her zaman en son görüntü sürümünü kullanacak şekilde görüntü tanımı kimliğine (bu örnekte$galleryImage.Id) ayarlayın -Id
.
Bu örnekte kaynak adlarını gerektiği gibi değiştirin.
# 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
Galeriyi paylaşma
Galeri düzeyinde erişimi paylaşmanızı öneririz. Kullanıcının nesne kimliğini almak için bir e-posta adresi ve Get-AzADUser cmdlet'ini kullanın, ardından galeriye erişim vermek için New-AzRoleAssignment kullanın. Bu örnekteki örnek e-postayı alinne_montes@contoso.com kendi bilgilerinizle değiştirin.
# 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
Kaynakları temizleme
Artık gerekli olmadığında Remove-AzResourceGroup cmdlet'ini kullanarak kaynak grubunu ve tüm ilgili kaynakları kaldırabilirsiniz:
# Delete the gallery
Remove-AzResourceGroup -Name myGalleryRG
# Delete the VM
Remove-AzResourceGroup -Name myResoureceGroup
Azure Görüntü Oluşturucusu
Azure ayrıca Packer , Azure VM Image Builder üzerine oluşturulmuş bir hizmet de sunar. Özelleştirmelerinizi bir şablonda açıklamanız yeterlidir ve görüntü oluşturmayı işler.
Sonraki adımlar
Bu öğreticide özel bir VM görüntüsü oluşturdunuz. Şunları öğrendiniz:
- Azure İşlem Galerisi oluşturma
- Görüntü tanımı oluşturma
- Görüntü sürümü oluşturma
- Görüntüden VM oluşturma
- Galeriyi paylaşma
Sanal Makine Ölçek Kümeleri hakkında bilgi edinmek için sonraki öğreticiye geçin.