Tutorial: Membuat dan menggunakan gambar kustom untuk Virtual Machine Scale Sets dengan Azure PowerShell

Saat Anda membuat set skala, Anda menentukan gambar yang akan digunakan saat instans VM diterapkan. Untuk mengurangi jumlah tugas setelah instans VM diterapkan, Anda dapat menggunakan gambar VM kustom. Gambar VM kustom ini mencakup instalasi atau konfigurasi aplikasi yang diperlukan. Setiap instans VM yang dibuat dalam set skala menggunakan gambar VM kustom dan siap untuk melayani lalu lintas aplikasi Anda. Dalam tutorial ini, Anda akan mempelajari cara:

  • Membuat Azure Compute Gallery
  • Membuat definisi gambar
  • Membuat versi gambar
  • Membuat set skala dari gambar
  • Berbagi galeri gambar

Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.

Meluncurkan Azure Cloud Shell

Azure Cloud Shell adalah shell interaktif gratis yang dapat Anda gunakan untuk menjalankan langkah-langkah dalam artikel ini. Shell ini memiliki alat Azure umum yang telah dipasang 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.

Membuat dan mengonfigurasi sumber VM

Pertama, buat grup sumber daya dengan New-AzResourceGroup, lalu buat VM dengan New-AzVM. VM ini kemudian digunakan sebagai sumber untuk gambar. Contoh berikut ini menampilkan cara membuat VM bernama myVM di grup sumber daya bernama myResourceGroup:

New-AzResourceGroup -Name 'myResourceGroup' -Location 'EastUS'

New-AzVm `
   -ResourceGroupName 'myResourceGroup' `
   -Name 'myVM' `
   -Location 'East US' `
   -VirtualNetworkName 'myVnet' `
   -SubnetName 'mySubnet' `
   -SecurityGroupName 'myNetworkSecurityGroup' `
   -PublicIpAddressName 'myPublicIpAddress' `
   -OpenPorts 80,3389

Menyimpan variabel VM

Anda dapat melihat daftar Komputer Virtual tersedia di 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 myVM dari grup sumber daya "myResourceGroup" dan menetapkannya ke variabel $vm.

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

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

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

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

$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, tanda hubung, dan titik. 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 komputer virtual menggunakan New-AzGalleryImageVersion.

Karakter yang diizinkan untuk versi citra 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 kedua pusat data US Timur dan US Selatan Tengah. Saat memilih wilayah target untuk replikasi, Anda perlu menyertakan wilayah sumber sebagai target replikasi.

Untuk membuat versi citra dari komputer virtual, $vm.Id.ToString() gunakan untuk -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 '2023-12-01'

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

Membuat set skala dari gambar

Sekarang buat set skala dengan New-AzVmss yang menggunakan -ImageName parameter untuk menentukan gambar komputer virtual kustom yang dibuat pada langkah sebelumnya. Untuk mendistribusikan lalu lintas ke instans komputer virtual individual, load balancer juga dibuat. Penyeimbang muatan mencakup aturan untuk mendistribusikan lalu lintas pada port TCP 80, serta memungkinkan lalu lintas desktop jarak jauh pada port TCP 3389 dan PowerShell jarak jauh pada port TCP 5985. Saat diminta, berikan informasi masuk administratif yang Anda inginkan untuk instans komputer virtual dalam set skala:

Penting

Mulai November 2023, set skala VM yang dibuat menggunakan PowerShell dan Azure CLI akan default ke Mode Orkestrasi Fleksibel jika tidak ada mode orkestrasi yang ditentukan. Untuk informasi selengkapnya tentang perubahan ini dan tindakan apa yang harus Anda ambil, buka Melanggar Perubahan untuk Pelanggan VMSS PowerShell/CLI - Microsoft Community Hub

# Define variables for the scale set
$resourceGroupName = "myScaleSet"
$scaleSetName = "myScaleSet"
$location = "East US"

# Create a resource group
New-AzResourceGroup -ResourceGroupName $resourceGroupName -Location $location

# Create a configuration 
$vmssConfig = New-AzVmssConfig `
   -Location $location `
   -OrchestrationMode Flexible `
   -SkuCapacity 2 `
   -SkuName "Standard_D2s_v3"

# Reference the image version
Set-AzVmssStorageProfile $vmssConfig `
  -OsDiskCreateOption "FromImage" `
  -ImageReferenceId $galleryImage.Id

# Create the scale set 
New-AzVmss `
  -ResourceGroupName $resourceGroupName `
  -Name $scaleSetName `
  -VirtualMachineScaleSet $vmssConfig

Dibutuhkan beberapa menit untuk membuat dan mengonfigurasi semua sumber daya dan komputer virtual set skala.

Kami menyarankan Anda berbagi akses di tingkat galeri gambar. 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

Setelah selesai, Anda dapat menggunakan cmdlet Hapus-AzResourceGroup untuk menghapus grup sumber daya dan sumber daya terkait lainnya:

# Delete the gallery 
Remove-AzResourceGroup -Name myGalleryRG

# Delete the scale set resource group
Remove-AzResourceGroup -Name myResoureceGroup

Langkah berikutnya

Dalam tutorial ini, Anda mempelajari cara membuat dan menggunakan gambar VM kustom untuk rangkaian skala Anda dengan Azure PowerShell:

  • Membuat Azure Compute Gallery
  • Membuat definisi gambar
  • Membuat versi gambar
  • Membuat set skala dari gambar
  • Berbagi galeri gambar

Lanjutkan ke tutorial berikutnya untuk belajar bagaimana menyebarkan aplikasi ke set skala Anda.