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

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 Azure sebelum memulai.

Prasyarat

  • Artikel ini memerlukan antarmuka tingkat panggilan Azure versi 2.0.29 atau yang lebih baru. Jika menggunakan Azure Cloud Shell, versi terbaru sudah terinstal.

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 Skrip Kustom terintegrasi dengan templat Azure Resource Manager, dan juga dapat digunakan dengan Azure CLI, Azure PowerShell, portal Microsoft Azure, atau REST API. Untuk informasi selengkapnya, lihat Gambaran Umum Ekstensi Skrip Kustom.

Untuk menggunakan Ekstensi Skrip Kustom dengan Azure CLI, Anda membuat file JSON yang menentukan file apa yang akan diperoleh dan perintah untuk dijalankan. Definisi JSON ini dapat digunakan kembali di seluruh penyebaran set skala untuk menerapkan penginstalan aplikasi yang konsisten.

Membuat definisi Ekstensi Skrip Kustom

Untuk melihat Ekstensi Skrip Kustom bekerja, buat set skala yang menginstal server web NGINX dan menghasilkan nama host instans komputer virtual set skala. Definisi Custom Script Extension berikut mengunduh sampel skrip dari GitHub, memasang paket yang diperlukan, lalu menulis nama host instans VM ke halaman HTML dasar.

Di shell Anda saat ini, buat file bernama customConfig.jsona dan tempelkan konfigurasi berikut. Misalnya, membuat file di Cloud Shell bukan di komputer lokal Anda. Anda dapat menggunakan editor apa pun yang diinginkan. Dalam tutorial ini kita akan menggunakan Vi. Masukkanvi di Cloud Shell. Tempelkan JSON di bawah ini ke editor dan ketik :w customConfig.json.

{
  "fileUris": ["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate_nginx.sh"],
  "commandToExecute": './automate_nginx.sh'
}

Catatan

Anda mungkin perlu membalik penggunaan tanda kutip tunggal (') dan ganda (") dalam blok JSON jika Anda memutuskan untuk mereferensikan langsung JSON (alih-alih merujuk file customConfig.json) dalam parameter --settings di bawah ini.

Membuat 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

Membuat grup sumber daya dengan membuat grup az. Contoh berikut ini menampilkan cara membuat grup sumber daya bernama myResourceGroup di lokasi eastus:

az group create --name myResourceGroup --location eastus

Sekarang buat Virtual Machine Scale Set dengan az vmss create. Contoh berikut membuat set skala bernama myScaleSet, dan menghasilkan kunci SSH jika tidak ada:

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --image Ubuntu2204 \
  --orchestration-mode Flexible \
  --admin-username azureuser \
  --generate-ssh-keys

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

Menerapkan Ekstensi Skrip Kustom

Terapkan konfigurasi Ekstensi Skrip Kustom ke instans komputer virtual dalam set skala Anda dengan az vmss extension set. Contoh berikut menerapkan konfigurasi customConfig.js ke instans komputer virtual myScaleSet di grup sumber daya bernama myResourceGroup:

az vmss extension set \
  --publisher Microsoft.Azure.Extensions \
  --version 2.0 \
  --name CustomScript \
  --resource-group myResourceGroup \
  --vmss-name myScaleSet \
  --settings customConfig.json

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.

Perhatian

Nama file peka huruf besar/kecil. Gunakan nama file yang tepat yang dinyatakan dalam instruksi ini untuk menghindari kegagalan.

Menguji set skala Anda

Agar lalu lintas dapat mencapai aplikasi web, buat aturan penyeimbangan beban dengan az network lb rule create. Contoh berikut membuat aturan bernama myLoadBalancerRuleWeb:

az network lb rule create \
  --resource-group myResourceGroup \
  --name myLoadBalancerRuleWeb \
  --lb-name myScaleSetLB \
  --backend-pool-name myScaleSetLBBEPool \
  --backend-port 80 \
  --frontend-ip-name loadBalancerFrontEnd \
  --frontend-port 80 \
  --protocol tcp

Untuk melihat set skala Anda saat bekerja, dapatkan alamat IP publik dari load balancer Anda dengan az network public-ip show. Contoh berikut mendapatkan alamat IP untuk myScaleSetLBPublicIP yang dibuat sebagai bagian dari set skala:

az network public-ip show \
  --resource-group myResourceGroup \
  --name myScaleSetLBPublicIP \
  --query [ipAddress] \
  --output tsv

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:

Basic web page in Nginx

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

Memperbarui penyebaran aplikasi

Sepanjang siklus hidup set skala, Anda mungkin perlu menyebarkan versi terbaru aplikasi Anda. Dengan Custom Script Extension, Anda dapat mereferensikan skrip penerapan yang diperbarui, lalu menerapkan ulang ekstensi ke set skala Anda. Ketika set skala dibuat di langkah sebelumnya, --upgrade-policy-mode diatur ke otomatis. Pengaturan ini memungkinkan instans VM dalam set skala untuk memperbarui dan menerapkan versi terbaru aplikasi Anda secara otomatis.

Di shell Anda saat ini, buat file bernama customConfigv2.json dan tempelkan konfigurasi berikut. Definisi ini menjalankan versi v2 terbaru dari skrip penginstalan aplikasi:

{
  "fileUris": ["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate_nginx_v2.sh"],
  "commandToExecute": "./automate_nginx_v2.sh"
}

Terapkan konfigurasi Ekstensi Skrip Kustom ke instans komputer virtual dalam set skala Anda dengan az vmss extension set. customConfigv2.json digunakan untuk menerapkan versi aplikasi yang diperbarui:

az vmss extension set \
  --publisher Microsoft.Azure.Extensions \
  --version 2.0 \
  --name CustomScript \
  --resource-group myResourceGroup \
  --vmss-name myScaleSet \
  --settings @customConfigv2.json

Semua instans VM dalam set skala secara otomatis diperbarui dengan versi terbaru halaman web sampel. Untuk melihat versi yang diperbarui, refresh situs web di browser Anda:

Updated web page in Nginx

Membersihkan sumber daya

Untuk menghapus set skala dan sumber daya tambahan Anda, hapus grup sumber daya dan semua sumber dayanya dengan az group delete. Parameter --no-wait mengembalikan kontrol ke permintaan tanpa menunggu operasi selesai. Parameter --yes mengonfirmasi bahwa Anda ingin menghapus sumber daya tanpa permintaan tambahan untuk melakukannya.

az group delete --name myResourceGroup --no-wait --yes

Langkah berikutnya

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

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