Bagikan melalui


Tutorial: Menginstal aplikasi di Virtual Machine Scale Sets dengan Azure PowerShell

Untuk menjalankan aplikasi pada instans komputer virtual (VM) dalam suatu set skala, Anda perlu memasang komponen aplikasi dan file yang diperlukan terlebih dahulu. Dalam tutorial sebelumnya, Anda mempelajari cara membuat dan menggunakan citra komputer virtual kustom untuk menyebarkan instans komputer virtual Anda. Citra kustom ini mencakup penginstalan dan konfigurasi aplikasi manual. Anda juga dapat mengotomatiskan penginstalan aplikasi ke set skala setelah setiap instans komputer virtual disebarkan, atau memperbarui aplikasi yang sudah berjalan pada set skala. Dalam tutorial ini, Anda akan mempelajari cara:

  • Menginstal aplikasi secara otomatis ke set skala Anda
  • Menggunakan Ekstensi Skrip Kustom Azure
  • Memperbarui aplikasi yang sedang berjalan pada set skala

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

Azure Cloud Shell

Azure meng-hosting Azure Cloud Shell, lingkungan shell interaktif yang dapat Anda gunakan melalui browser. Anda dapat menggunakan Bash atau PowerShell dengan Cloud Shell untuk bekerja dengan layanan Azure. Anda dapat menggunakan perintah Cloud Shell yang telah diinstal sebelumnya untuk menjalankan kode dalam artikel ini tanpa harus menginstal apa-apa di lingkungan lokal Anda.

Untuk memulai Azure Cloud Shell:

Opsi Contoh/Tautan
Pilih Coba di pojok kanan atas blok kode atau perintah. Memilih Coba tidak otomatis menyalin kode atau perintah ke Cloud Shell. Cuplikan layar yang menunjukkan contoh Try It for Azure Cloud Shell.
Buka https://shell.azure.com, atau pilih tombol Luncurkan Cloud Shell untuk membuka Cloud Shell di browser Anda. Tombol untuk meluncurkan Azure Cloud Shell.
Pilih tombol Cloud Shell pada bilah menu di kanan atas di portal Microsoft Azure. Cuplikan layar yang menunjukkan tombol Cloud Shell di portal Azure

Untuk menggunakan Azure Cloud Shell:

  1. Mulai Cloud Shell.

  2. Pilih tombol Salin pada blok kode (atau blok perintah) untuk menyalin kode atau perintah.

  3. Tempel kode atau perintah ke dalam sesi Cloud Shell dengan memilih Ctrl+Shift+V di Windows dan Linux, atau dengan memilih Cmd+Shift+V di macOS.

  4. Pilih Masukkan untuk menjalankan kode atau perintah.

Apa itu Ekstensi Skrip Kustom Azure?

Ekstensi Skrip Kustom mengunduh dan mengeksekusi skrip di komputer virtual Azure. Ekstensi ini berguna untuk konfigurasi pasca penyebaran, penginstalan perangkat lunak, atau tugas konfigurasi/manajemen lainnya. Skrip dapat diunduh dari penyimpanan Azure atau GitHub, atau disediakan ke portal Microsoft Azure pada run-time ekstensi.

Ekstensi Custom Script terintegrasi dengan templat Azure Resource Manager. Ini juga dapat digunakan dengan Azure CLI, Azure PowerShell, portal Microsoft Azure, atau REST API. Untuk informasi selengkapnya, lihat Gambaran Umum Ekstensi Skrip Kustom.

Untuk melihat Custom Script Extension bekerja, buat set skala yang memasang server web IIS dan menghasilkan nama host set skala instans VM. Definisi Custom Script Extension mengunduh sampel skrip dari GitHub, memasang paket yang diperlukan, lalu menulis nama host instans VM ke halaman HTML dasar.

Membuat set skala

Membuat grup sumber daya menggunakan New-AzResourceGroup. Contoh berikut membuat grup sumber daya bernama myResourceGroup di lokasi US Timur:

New-AzResourceGroup -Name myResourceGroup -Location "East US"

Sekarang buat Virtual Machine Scale Set dengan New-AzVmss. Untuk mendistribusikan lalu lintas ke instans komputer virtual individual, load balancer juga dibuat. Load balancer mencakup aturan untuk mendistribusikan lalu lintas pada port TCP 80. Ini juga 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 untuk instans komputer virtual di dalam set skala:

New-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet" `
  -OrchestrationMode "Flexible" `
  -Location "EastUS" `
  -UpgradePolicyMode "Manual" `
  -VirtualNetworkName "myVnet" `
  -SubnetName "mySubnet" `
  -PublicIpAddressName "myPublicIPAddress" `
  -LoadBalancerName "myLoadBalancer" 

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

Membuat definisi Ekstensi Skrip Kustom

Azure PowerShell menggunakan hashtable untuk menyimpan file yang akan diunduh dan perintah yang akan dijalankan. Dalam contoh berikut, sampel skrip dari GitHub digunakan. Pertama, buat objek konfigurasi ini sebagai berikut:

$customConfig = @{
  "fileUris" = (,"https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate-iis.ps1");
  "commandToExecute" = "powershell -ExecutionPolicy Unrestricted -File automate-iis.ps1"
}

Sekarang, terapkan Custom Script Extension dengan Add-AzVmssExtension. Objek konfigurasi yang sebelumnya ditentukan diteruskan ke ekstensi. Perbarui ekstensi pada instans profil set skala dengan Update-AzVmss.

# Get information about the scale set
$vmss = Get-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet"

# Add the Custom Script Extension to install IIS and configure basic website
$vmss = Add-AzVmssExtension `
  -VirtualMachineScaleSet $vmss `
  -Name "customScript" `
  -Publisher "Microsoft.Compute" `
  -Type "CustomScriptExtension" `
  -TypeHandlerVersion 1.9 `
  -Setting $customConfig

# Update the scale set
Update-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -Name "myScaleSet" `
  -VirtualMachineScaleSet $vmss

Menambahkan ekstensi ke instans set skala yang ada

Lakukan peningkatan manual untuk menerapkan ekstensi yang diperbarui ke semua instans set skala yang ada. Pembaruan mungkin memerlukan waktu beberapa menit untuk diselesaikan.

Update-AzVmssInstance -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "*"

komputer virtual dalam set skala mengunduh dan menjalankan skrip dari GitHub. Dalam contoh yang lebih kompleks, beberapa komponen dan file aplikasi dapat diinstal. Jika set skala ditingkatkan, instans VM baru secara otomatis menerapkan definisi Custom Script Extension yang sama dan memasang aplikasi yang diperlukan.

Mengizinkan lalu lintas ke aplikasi

Untuk mengizinkan akses ke aplikasi web dasar, buat grup keamanan jaringan dengan New-AzNetworkSecurityRuleConfig dan New-AzNetworkSecurityGroup. Untuk informasi selengkapnya, lihat Jaringan untuk Set Skala Komputer Virtual Azure.

#Create a rule to allow traffic over port 80
$nsgFrontendRule = New-AzNetworkSecurityRuleConfig `
  -Name myFrontendNSGRule `
  -Protocol Tcp `
  -Direction Inbound `
  -Priority 200 `
  -SourceAddressPrefix * `
  -SourcePortRange * `
  -DestinationAddressPrefix * `
  -DestinationPortRange 80 `
  -Access Allow

#Create a network security group and associate it with the rule
$nsgFrontend = New-AzNetworkSecurityGroup `
  -ResourceGroupName  "myResourceGroup" `
  -Location EastUS `
  -Name myFrontendNSG `
  -SecurityRules $nsgFrontendRule

$vnet = Get-AzVirtualNetwork `
  -ResourceGroupName  "myResourceGroup" `
  -Name myVnet

$frontendSubnet = $vnet.Subnets[0]

$frontendSubnetConfig = Set-AzVirtualNetworkSubnetConfig `
  -VirtualNetwork $vnet `
  -Name mySubnet `
  -AddressPrefix $frontendSubnet.AddressPrefix `
  -NetworkSecurityGroup $nsgFrontend

Set-AzVirtualNetwork -VirtualNetwork $vnet

Menguji set skala Anda

Untuk melihat server web bekerja, dapatkan alamat IP publik load balancer Anda dengan Get-AzPublicIpAddress. Contoh berikut menampilkan alamat IP yang dibuat di grup sumber daya myResourceGroup:

Get-AzPublicIpAddress -ResourceGroupName "myResourceGroup" | Select IpAddress

Masukkan alamat IP publik penyeimbang beban ke browser web. Penyeimbang muatan mendistribusikan lalu lintas ke salah satu instans komputer virtual Anda, seperti yang ditunjukkan oleh contoh berikut:

Halaman web dasar di IIS

Biarkan browser web terbuka sehingga Anda dapat melihat versi yang diperbarui di langkah berikutnya.

Mengubah kebijakan peningkatan

Di bagian sebelumnya, untuk menerapkan aplikasi yang diperbarui ke semua instans set skala, diperlukan peningkatan manual. Untuk mengaktifkan pembaruan yang akan diterapkan secara otomatis ke semua instans set skala yang ada, perbarui kebijakan peningkatan dari manual ke otomatis. Untuk informasi selengkapnya tentang kebijakan peningkatan, lihat Kebijakan peningkatan untuk Virtual Machine Scale Sets.

$vmss = Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"

Update-Azvmss `
    -ResourceGroupName "myResourceGroup" `
    -Name "myScaleSet" `
    -UpgradePolicyMode "Automatic" `
    -VirtualMachineScaleSet $vmss

Memperbarui penyebaran aplikasi

Sepanjang siklus hidup set skala, Anda mungkin perlu menerapkan versi aplikasi yang diperbarui. Dengan Custom Script Extension, Anda dapat mereferensikan skrip penerapan yang diperbarui, lalu menerapkan ulang ekstensi ke set skala Anda.

Buat definisi konfigurasi baru bernama customConfigv2. Definisi ini menjalankan versi v2 terbaru dari skrip penginstalan aplikasi:

$customConfigv2 = @{
  "fileUris" = (,"https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate-iis-v2.ps1");
  "commandToExecute" = "powershell -ExecutionPolicy Unrestricted -File automate-iis-v2.ps1"
}

Perbarui konfigurasi Custom Script Extension ke instans VM di set skala Anda. Definisi customConfigv2 digunakan untuk menerapkan versi aplikasi yang diperbarui ke set skala:

$vmss = Get-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet"
 
$vmss.VirtualMachineProfile.ExtensionProfile[0].Extensions[0].Settings = $customConfigv2
 
Update-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -Name "myScaleSet" `
  -VirtualMachineScaleSet $vmss

Karena set skala sekarang menggunakan kebijakan peningkatan otomatis, aplikasi yang diperbarui akan secara otomatis diterapkan ke instans set skala yang ada. Refresh browser web Anda untuk melihat aplikasi yang diperbarui. Untuk melihat versi yang diperbarui, refresh situs web di browser Anda:

Halaman web yang diperbarui di IIS

Membersihkan sumber daya

Untuk menghapus set skala dan sumber daya tambahan Anda, hapus grup sumber daya dan semua sumber dayanya dengan Remove-AzResourceGroup. Parameter -Force mengonfirmasi bahwa Anda ingin menghapus sumber daya tanpa permintaan tambahan untuk melakukannya. Parameter -AsJob mengembalikan kontrol ke permintaan tanpa menunggu operasi selesai.

Remove-AzResourceGroup -Name "myResourceGroup" -Force -AsJob

Langkah berikutnya

Dalam tutorial ini, Anda mempelajari cara memasang dan memperbarui aplikasi secara otomatis pada set skala Anda dengan Azure PowerShell:

  • Menginstal aplikasi secara otomatis ke set skala Anda
  • Menggunakan Ekstensi Skrip Kustom Azure
  • Memperbarui aplikasi yang sedang berjalan pada set skala

Lanjutkan ke tutorial berikutnya untuk mempelajari cara menskalakan set skala Anda secara otomatis.