Tutorial: Membuat citra Windows VM dengan Azure PowerShell

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

Gambar dapat digunakan untuk penyebaran bootstrap dan memastikan konsistensi di beberapa komputer virtual. Dalam tutorial ini, Anda membuat gambar khusus Anda sendiri dari mesin virtual Azure menggunakan PowerShell dan menyimpannya di Shared Image Gallery. Anda akan mempelajari cara untuk:

  • Membuat 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 komputer virtual yang ada dan mengubahnya menjadi gambar kustom yang dapat digunakan kembali yang dapat Anda gunakan untuk membuat komputer virtual baru.

Untuk menyelesaikan contoh dalam tutorial ini, Anda harus memiliki komputer virtual yang ada. Jika diperlukan, Anda dapat melihat mulai cepat PowerShell untuk membuat VM untuk digunakan 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. Citra kustom seperti gambar pasar, 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 citra yang ingin Anda bagikan, di wilayah mana Anda ingin menyediakannya, 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 adalah apa yang Anda gunakan untuk membuat VM saat menggunakan galeri. Anda juga dapat memiliki beberapa versi gambar sesuai kebutuhan untuk lingkungan Anda. Seperti gambar terkelola, ketika Anda menggunakan versi gambar untuk membuat VM, versi gambar digunakan untuk membuat disk baru untuk VM. Versi gambar dapat digunakan beberapa kali.

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 Coba 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.

Dapatkan komputer virtual

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 sourceVM dari grup sumber daya myResourceGroup dan menetapkannya ke variabel $sourceVM.

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

Membuat grup sumber daya

Membuat grup sumber daya dengan perintah New-AzResourceGroup.

Grup sumber daya Azure adalah kontainer logis yang disebarkan dan dikelola sumber daya Azure. Dalam contoh ini, 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 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 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 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 titik. Untuk informasi selengkapnya tentang nilai yang bisa 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 komputer virtual 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.Tambalan.

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 gambar 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 '2030-12-01'

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

Buat VM

Setelah Anda memiliki gambar khusus, Anda dapat membuat satu atau beberapa komputer virtual baru. Menggunakan cmdlet New-AzVM. Untuk menggunakan gambar, gunakan Set-AzVMSourceImage dan atur -Id 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 Anda berbagi akses di tingkat galeri gambar. Gunakan alamat email dan cmdlet Dapatkan-AzADUser untuk mendapatkan ID objek untuk pengguna, lalu gunakan Baru-AzRoleAssignment untuk memberi mereka akses ke galeri. Ganti contoh email, dalam alinne_montes@contoso.com 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 VM
Remove-AzResourceGroup -Name myResoureceGroup

Azure VM 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 komputer virtual khusus. Anda mempelajari cara untuk:

  • Membuat 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.