Contoh skrip Azure CLI: Lakukan load balance lalu lintas ke VM untuk ketersediaan tinggi

Contoh skrip Azure CLI ini membuat semua yang diperlukan untuk menjalankan beberapa komputer virtual Ubuntu yang dikonfigurasi dalam konfigurasi ketersediaan tinggi dan load balance. Setelah menjalankan skrip, Anda akan memiliki tiga komputer virtual, tergabung ke Azure Availability Set, dan dapat diakses melalui Azure Load Balancer.

Untuk menjalankan sampel ini, instal versi terbaru Azure CLI. Untuk memulai, jalankan az login guna membuat koneksi dengan Azure.

Sampel untuk Azure CLI ditulis untuk bash shell. Untuk menjalankan sampel ini di Windows PowerShell atau Perintah, Anda perlu mengubah elemen skrip.

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

Skrip sampel

#!/bin/bash

# Create a resource group.
az group create --name myResourceGroup --location westeurope

# Create a virtual network.
az network vnet create --resource-group myResourceGroup --location westeurope --name myVnet --subnet-name mySubnet

# Create a public IP address.
az network public-ip create --resource-group myResourceGroup --name myPublicIP

# Create an Azure Load Balancer.
az network lb create --resource-group myResourceGroup --name myLoadBalancer --public-ip-address myPublicIP \
  --frontend-ip-name myFrontEndPool --backend-pool-name myBackEndPool

# Creates an LB probe on port 80.
az network lb probe create --resource-group myResourceGroup --lb-name myLoadBalancer \
  --name myHealthProbe --protocol tcp --port 80

# Creates an LB rule for port 80.
az network lb rule create --resource-group myResourceGroup --lb-name myLoadBalancer --name myLoadBalancerRuleWeb \
  --protocol tcp --frontend-port 80 --backend-port 80 --frontend-ip-name myFrontEndPool \
  --backend-pool-name myBackEndPool --probe-name myHealthProbe

# Create three NAT rules for port 22.
for i in `seq 1 3`; do
  az network lb inbound-nat-rule create \
    --resource-group myResourceGroup --lb-name myLoadBalancer \
    --name myLoadBalancerRuleSSH$i --protocol tcp \
    --frontend-port 422$i --backend-port 22 \
    --frontend-ip-name myFrontEndPool
done

# Create a network security group
az network nsg create --resource-group myResourceGroup --name myNetworkSecurityGroup

# Create a network security group rule for port 22.
az network nsg rule create --resource-group myResourceGroup --nsg-name myNetworkSecurityGroup --name myNetworkSecurityGroupRuleSSH \
  --protocol tcp --direction inbound --source-address-prefix '*' --source-port-range '*'  \
  --destination-address-prefix '*' --destination-port-range 22 --access allow --priority 1000

# Create a network security group rule for port 80.
az network nsg rule create --resource-group myResourceGroup --nsg-name myNetworkSecurityGroup --name myNetworkSecurityGroupRuleHTTP \
--protocol tcp --direction inbound --priority 1001 --source-address-prefix '*' --source-port-range '*' \
--destination-address-prefix '*' --destination-port-range 80 --access allow --priority 2000

# Create three virtual network cards and associate with public IP address and NSG.
for i in `seq 1 3`; do
  az network nic create \
    --resource-group myResourceGroup --name myNic$i \
    --vnet-name myVnet --subnet mySubnet \
    --network-security-group myNetworkSecurityGroup --lb-name myLoadBalancer \
    --lb-address-pools myBackEndPool --lb-inbound-nat-rules myLoadBalancerRuleSSH$i
done

# Create an availability set.
az vm availability-set create --resource-group myResourceGroup --name myAvailabilitySet --platform-fault-domain-count 3 --platform-update-domain-count 3

# Create three virtual machines, this creates SSH keys if not present.
for i in `seq 1 3`; do
  az vm create \
    --resource-group myResourceGroup \
    --name myVM$i \
    --availability-set myAvailabilitySet \
    --nics myNic$i \
    --image UbuntuLTS \
    --generate-ssh-keys \
    --no-wait
done

Membersihkan penerapan

Jalankan perintah berikut untuk menghapus grup sumber daya, komputer virtual, dan semua sumber daya terkait.

az group delete --name myResourceGroup

Penjelasan skrip

Skrip ini menggunakan perintah berikut untuk membuat grup sumber daya, komputer virtual, set ketersediaan, load balancer, dan semua sumber daya terkait. Setiap perintah dalam tabel ditautkan ke dokumentasi khusus perintah.

Perintah Catatan
az group create Membuat grup sumber daya tempat menyimpan semua sumber daya.
az network vnet create Membuat subnet dan jaringan virtual Azure.
az network public-ip create Membuat alamat IP publik dengan alamat IP statis dan nama DNS terkait.
az network lb create Membuat Azure load balancer.
az network lb probe create Membuat probe load balancer. Probe load balancer digunakan untuk memantau setiap VM dalam set load balancer. Jika ada VM yang tidak dapat diakses, lalu lintas tidak dirutekan ke VM.
az network lb rule create Membuat aturan load balancer. Dalam sampel ini, aturan dibuat untuk port 80. Ketika lalu lintas HTTP tiba di load balancer, lalu lintas dirutekan ke port 80 salah satu VM di set LB.
az network lb inbound-nat-rule create Membuat aturan Network Address Translation (NAT) load balancer. Aturan NAT memetakan port load balancer ke port pada VM. Dalam sampel ini, aturan NAT dibuat untuk lalu lintas SSH ke setiap VM dalam set load balancer.
az network nsg create Membuat kelompok keamanan jaringan (NSG), yang merupakan batas keamanan antara internet dan komputer virtual.
az network nsg rule create Membuat aturan NSG untuk memungkinkan lalu lintas masuk. Dalam sampel ini, port 22 dibuka untuk lalu lintas SSH.
az network nic create Membuat kartu jaringan virtual dan melampirkannya ke jaringan virtual, subnet, dan NSG.
az vm availability-set create Membuat set ketersediaan. Pengaturan ketersediaan memastikan waktu aktif aplikasi dengan menyebarkan komputer virtual di seluruh sumber daya fisik sedemikian rupa sehingga jika kegagalan terjadi, seluruh set tidak terpengaruh.
az vm create Membuat komputer virtual dan menghubungkannya ke kartu jaringan, jaringan virtual, subnet, dan NSG. Perintah ini juga menentukan gambar komputer virtual yang akan digunakan dan kredensial administratif.
az group delete Menghapus grup sumber daya termasuk semua sumber daya berlapis.

Langkah berikutnya

Untuk informasi selengkapnya tentang Azure CLI, lihat dokumentasi Azure CLI.

Sampel skrip Azure CLI tambahan dapat ditemukan di dokumentasi Jaringan Azure.