Tutorial: Membuat gambar VM Windows dengan Azure PowerShell

Berlaku untuk: ✔️ VM Windows ✔️ Kumpulan skala fleksibel

Gambar dapat digunakan untuk memulai penyebaran dan memastikan konsistensi di beberapa mesin virtual. Dalam tutorial ini, Anda membuat gambar khusus komputer virtual Azure Anda sendiri menggunakan PowerShell dan menyimpannya di Azure Compute Gallery (sebelumnya dikenal sebagai Shared Image Gallery). Anda akan mempelajari cara untuk:

  • Buat Azure Compute Gallery
  • Membuat definisi gambar
  • Membuat versi gambar
  • Membuat komputer virtual dari gambar
  • Berbagi galeri

Sebelum Anda mulai

Langkah-langkah di bawah ini merinci cara mengambil VM yang ada dan mengubahnya menjadi gambar kustom yang dapat digunakan kembali yang dapat Anda gunakan untuk membuat VM baru.

Untuk menyelesaikan contoh dalam tutorial ini, Anda harus memiliki komputer virtual yang ada. Jika diperlukan, Anda dapat melihat panduan cepat PowerShell untuk membuat VM yang akan digunakan menggunakan untuk tutorial ini. Saat bekerja melalui tutorial, ganti nama sumber daya jika diperlukan.

Gambaran Umum

Azure Compute Gallery menyederhanakan berbagi gambar kustom di seluruh organisasi Anda. Gambar kustom seperti gambar marketplace, tetapi Anda membuatnya sendiri. Citra kustom dapat digunakan untuk konfigurasi bootstrap seperti aplikasi yang dimuat sebelumnya, konfigurasi aplikasi, dan konfigurasi OS lainnya.

Azure Compute Gallery memungkinkan Anda berbagi gambar VM kustom Anda dengan orang lain. Pilih gambar mana yang ingin Anda bagikan, wilayah mana yang ingin Anda sediakan, dan dengan siapa Anda ingin membagikannya.

Fitur Azure Compute Gallery memiliki beberapa jenis sumber daya:

Sumber daya Deskripsi
Sumber gambar Ini merupakan sumber daya yang dapat digunakan untuk membuat versi gambar di galeri. Sumber gambar dapat berupa mesin virtual Azure yang suda ada, baik umum atau khusus, gambar terkelola, salinan bayangan, atau versi gambar di galeri lain.
Galeri Seperti Marketplace Azure, galeri adalah repositori untuk mengelola dan berbagi gambar serta aplikasi mesin virtual, tetapi Anda mengontrol siapa yang memiliki akses.
Definisi gambar Definisi gambar dibuat dalam galeri dan membawa informasi tentang gambar dan persyaratan untuk menggunakannya secara internal. Hal ini termasuk apakah gambar itu Windows atau Linux, catatan rilis, dan persyaratan memori minimum dan maksimum. Hal ini merupakan definisi dari jenis gambar.
Versi gambar Versi gambar yang Anda gunakan untuk membuat VM saat menggunakan galeri. Anda dapat memiliki beberapa versi gambar sesuai kebutuhan untuk lingkungan Anda. Seperti citra yang dikelola, ketika Anda menggunakan versi citra untuk membuat VM, versi citra digunakan untuk membuat disk baru bagi VM. Versi gambar dapat digunakan beberapa kali.

Luncurkan Azure Cloud Shell

Azure Cloud Shell adalah shell interaktif gratis yang dapat Anda gunakan untuk menjalankan langkah-langkah dalam artikel ini. Ini memiliki alat Azure umum yang telah diinstal sebelumnya dan dikonfigurasi untuk digunakan dengan akun Anda.

Untuk membuka Cloud Shell, cukup pilih Cobalah dari sudut kanan atas blok kode. Anda juga dapat meluncurkan Cloud Shell di tab browser terpisah dengan membuka https://shell.azure.com/powershell. Pilih Salin untuk menyalin blok kode, tempelkan ke Cloud Shell, dan tekan masukkan untuk menjalankannya.

Akses VM

Anda dapat melihat daftar VM yang tersedia dalam grup sumber daya menggunakan Get-AzVM. Setelah Anda mengetahui nama VM dan grup sumber daya apa, Anda dapat menggunakan Get-AzVM lagi untuk mendapatkan objek VM dan menyimpannya dalam variabel untuk digunakan nanti. Contoh ini mendapatkan VM bernama sourceVM dari grup sumber daya myResourceGroup dan menetapkannya ke variabel $sourceVM.

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

Membuat grup sumber daya

Buat grup sumber daya dengan perintah New-AzResourceGroup.

Grup sumber daya Azure adalah kontainer logis tempat sumber daya Azure disebarkan dan dikelola. Dalam contoh berikut, grup sumber daya bernama myGalleryRG dibuat di wilayah EastUS :

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

Galeri gambar adalah sumber daya utama yang digunakan untuk mengaktifkan berbagi gambar. Karakter yang diizinkan untuk nama galeri adalah huruf besar atau kecil, angka, dan titik. Nama galeri tak boleh memuat garis putus-putus. Nama galeri harus unik dalam langganan Anda.

Buat galeri menggunakan New-AzGallery. Contoh berikut membuat galeri bernama myGallery di grup sumber daya myGalleryRG .

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

Membuat definisi gambar

Definisi citra membuat pengelompokan logis untuk citra. Mereka digunakan untuk mengelola informasi tentang versi gambar yang dibuat di dalamnya. Nama definisi gambar dapat terdiri dari huruf besar atau kecil, angka, titik, dan tanda hubung. Untuk informasi selengkapnya tentang nilai yang bisa Anda tentukan untuk definisi gambar, lihat Definisi citra.

Buat definisi gambar menggunakan New-AzGalleryImageDefinition. Dalam contoh ini, gambar galeri diberi nama myGalleryImage dan dibuat untuk gambar khusus.

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

Membuat versi gambar

Buat versi gambar dari VM menggunakan New-AzGalleryImageVersion.

Karakter yang diizinkan untuk versi gambar adalah angka dan titik. Angka harus berada dalam rentang bilangan bulat 32-bit. Format: MajorVersion. MinorVersion. Patch.

Dalam contoh ini, versi gambar adalah 1.0.0 dan direplikasi ke pusat data US Timur dan US Tengah Selatan . Saat memilih wilayah target untuk replikasi, Anda perlu menyertakan wilayah sumber sebagai target replikasi.

Untuk membuat versi gambar dari VM, gunakan ID sumber daya dari VM sumber untuk parameter -sourceImageVMId.

   $region1 = @{Name='South Central US';ReplicaCount=1}
   $region2 = @{Name='East US';ReplicaCount=2}
   $targetRegions = @($region1,$region2)
   $sourceImageVMId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myGalleryRG/providers/Microsoft.Compute/virtualMachines/sourceVM"

New-AzGalleryImageVersion `
   -GalleryImageDefinitionName $galleryImage.Name`
   -GalleryImageVersionName '1.0.0' `
   -GalleryName $gallery.Name `
   -ResourceGroupName $resourceGroup.ResourceGroupName `
   -Location $resourceGroup.Location `
   -TargetRegion $targetRegions  `
   -SourceImageVMId $sourceImageVMId `
   -PublishingProfileEndOfLifeDate '2030-12-01'

Ini bisa memakan waktu cukup lama untuk mereplikasi gambar ke semua wilayah target.

Membuat VM

Setelah Anda memiliki gambar khusus, Anda dapat membuat satu atau beberapa VM baru. Menggunakan cmdlet New-AzVM . Untuk menggunakan gambar, gunakan Set-AzVMSourceImage dan atur -Id ke ID definisi gambar ($galleryImage.Id dalam hal ini) untuk selalu menggunakan versi gambar terbaru.

Ganti nama sumber daya sesuai kebutuhan dalam contoh ini.

# 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

Kami menyarankan agar Anda berbagi akses di tingkat galeri. Gunakan alamat surel dan cmdlet Get-AzADUser untuk mendapatkan ID objek bagi pengguna, lalu gunakan New-AzRoleAssignment untuk memberi akses ke galeri. Ganti surel contoh, alinne_montes@contoso.com dalam contoh ini, dengan informasi Anda sendiri.

# 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

Membersihkan sumber daya

Jika tidak lagi diperlukan, Anda dapat menggunakan cmdlet Remove-AzResourceGroup untuk menghapus grup sumber daya, dan semua sumber daya terkait:

# Delete the gallery 
Remove-AzResourceGroup -Name myGalleryRG

# Delete the VM
Remove-AzResourceGroup -Name myResoureceGroup

Azure Image Builder

Azure juga menawarkan layanan, dibangun di Packer, Azure VM Image Builder. Cukup jelaskan kustomisasi Anda dalam templat, dan itu akan menangani pembuatan gambar.

Langkah berikutnya

Dalam tutorial ini, Anda membuat gambar VM khusus. Anda mempelajari cara untuk:

  • Buat Azure Compute Gallery
  • Membuat definisi gambar
  • Membuat versi gambar
  • Membuat komputer virtual dari gambar
  • Berbagi galeri

Lanjutkan ke tutorial berikutnya untuk mempelajari tentang Virtual Machine Scale Sets.