Bagikan melalui


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

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

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

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

Luncurkan 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 enter untuk menjalankannya.

Membuat dan mengonfigurasi VM sumber

Pertama, buat grup sumber daya dengan New-AzResourceGroup, lalu buat VM dengan New-AzVM. VM ini kemudian digunakan sebagai sumber untuk gambar. Contoh berikut 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 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 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 diizinkan untuk nama galeri adalah huruf besar atau huruf kecil, angka, dan titik. Nama galeri tidak boleh berisi tanda hubung. Nama galeri harus unik 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 gambar membuat pengelompokan logis untuk gambar. 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 tanda baca titik. Untuk informasi selengkapnya tentang nilai yang dapat Anda tentukan untuk definisi gambar, lihat Definisi gambar.

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-angka dan tanda 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 $vm.Id.ToString() 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'

Diperlukan waktu beberapa saat untuk mereplikasi gambar ke semua wilayah target.

Membuat kumpulan skala dari gambar

Sekarang buat set skala dengan New-AzVmss yang menggunakan -ImageName parameter untuk menentukan gambar VM kustom yang dibuat pada langkah sebelumnya. Untuk mendistribusikan lalu lintas ke instans VM individual, load balancer juga dibuat. Load balancer 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 kredensial administratif yang Anda inginkan sendiri untuk instans VM 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 Perubahan Krusial 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 mesin virtual skala set.

Kami menyarankan agar Anda berbagi akses di tingkat galeri gambar. Gunakan alamat email dan cmdlet Get-AzADUser untuk mendapatkan ID objek bagi pengguna, lalu gunakan New-AzRoleAssignment untuk memberi mereka akses ke galeri. Ganti contoh email, 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 scale set resource group
Remove-AzResourceGroup -Name myResoureceGroup

Langkah selanjutnya

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

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

Lanjutkan ke tutorial berikutnya untuk mempelajari cara menyebarkan aplikasi ke skala set Anda.