Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten przykładowy skrypt tworzy sieć wirtualną z dwiema maszynami wirtualnymi, które są elementami członkowskimi zestawu dostępności. Moduł równoważenia obciążenia kieruje ruch dla 2 osobnych adresów IP do 2 maszyn wirtualnych. Po uruchomieniu skryptu możesz wdrożyć oprogramowanie serwera internetowego na maszynach wirtualnych i hostować wiele witryn internetowych, z których każda będzie miała własny adres IP.
Aby uruchomić ten przykład, zainstaluj najnowszą wersję Azure CLI . Aby rozpocząć, uruchom polecenie az login
w celu nawiązania połączenia z platformą Azure.
Przykłady dla Azure CLI są napisane dla powłoki bash
. Aby uruchomić ten przykład w programie Windows PowerShell lub wierszu polecenia, może być konieczne zmianę elementów skryptu.
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.
Przykładowy skrypt
#!/bin/bash
# Passed validation in Cloud Shell on 3/3/2022
# <FullScript>
# Load balance multiple websites
# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
location="East US"
resourceGroup="msdocs-load-balancer-rg-$randomIdentifier"
tag="load-balance-multiple-web-sites-vm"
availabilitySet="msdocs-availablity-set-lb-$randomIdentifier"
vNet="msdocs-vnet-lb-$randomIdentifier"
subnet="msdocs-subnet-lb-$randomIdentifier"
loadBalancerPublicIp="msdocs-public-ip-lb-$randomIdentifier"
loadBalancerFrontEndConfig1="msdocs-contoso-lb-$randomIdentifier"
loadBalancerFrontEndConfig2="msdocs-fabrikam-lb-$randomIdentifier"
loadBalancer="msdocs-load-balancer-$randomIdentifier"
frontEndIp="msdocs-front-end-ip-lb-$randomIdentifier"
frontEndIpConfig1="msdocs-front-end-ip-config-contoso-lb-$randomIdentifier"
frontEndIpConfig2="msdocs-front-end-ip-config-fabrikam-lb-$randomIdentifier"
backEndPool="msdocs-back-end-pool-lb-$randomIdentifier"
backEndAddressPool1="msdocs-back-end-address-pool-contoso-lb-$randomIdentifier"
backEndAddressPool2="msdocs-back-end-address-pool-fabrikam-lb-$randomIdentifier"
probe80="msdocs-port80-health-probe-lb-$randomIdentifier"
lbRuleConfig1="msdocs-contoso-load-balancer-rule-$randomIdentifier"
lbRuleConfig2="msdocs-fabrikam-load-balancer-rule-$randomIdentifier"
publicIpVm1="msdocs-public-ip-vm1-lb-$randomIdentifier"
nicVm1="msdocs-nic-vm1-$randomIdentifier"
ipConfig1="msdocs-ipconfig-config1-lb-$randomIdentifier"
ipConfig2="msdocs-ipconfig-config2-lb-$randomIdentifier"
vm1="msdocs-vm1-lb-$randomIdentifier"
publicIpVm2="msdocs-public-ip-vm2-lb-$randomIdentifier"
ipSku="Standard"
nicVm2="msdocs-nic-vm2-lb-$randomIdentifier"
ipConfig1="msdocs-ipconfig-config1-lb-$randomIdentifier"
ipConfig2="msdocs-ipconfig-config2-lb-$randomIdentifier"
vm2="msdocs-vm2-lb-$randomIdentifier"
image="Ubuntu2204"
login="azureuser"
# Create a resource group
echo "Creating $resourceGroup in "$location"..."
az group create --name $resourceGroup --location "$location" --tags $tag
# Create an availability set for the two VMs that host both websites.
echo "Creating $availabilitySet"
az vm availability-set create --resource-group $resourceGroup --location "$location" --name $availabilitySet --platform-fault-domain-count 2 --platform-update-domain-count 2
# Create a virtual network and a subnet.
echo "Creating $vNet and $subnet"
az network vnet create --resource-group $resourceGroup --name $vNet --address-prefix 10.0.0.0/16 --location "$location" --subnet-name $subnet --subnet-prefix 10.0.0.0/24
# Create three public IP addresses; one for the load balancer and two for the front-end IP configurations.
echo "Creating $loadBalancerPublicIp"
az network public-ip create --resource-group $resourceGroup --name $loadBalancerPublicIp --allocation-method Dynamic
echo "Creating $loadBalancerFrontEndConfig1"
az network public-ip create --resource-group $resourceGroup --name $loadBalancerFrontEndConfig1 --allocation-method Dynamic
echo "Creating $loadBalancerFrontEndConfig2"
az network public-ip create --resource-group $resourceGroup --name $loadBalancerFrontEndConfig2 --allocation-method Dynamic
# Create an Azure Load Balancer.
echo "Creating $loadBalancer with $frontEndIP and $backEndPool"
az network lb create --resource-group $resourceGroup --location "$location" --name $loadBalancer --frontend-ip-name $frontEndIp --backend-pool-name $backEndPool --public-ip-address $loadBalancerPublicIp
# Create two front-end IP configurations for both web sites.
echo "Creating $frontEndIpConfig1 for $loadBalancerFrontEndConfig1"
az network lb frontend-ip create --resource-group $resourceGroup --lb-name $loadBalancer --public-ip-address $loadBalancerFrontEndConfig1 --name $frontEndIpConfig1
echo "Creating $frontEndIpConfig2 for $loadBalancerFrontEndConfig2"
az network lb frontend-ip create --resource-group $resourceGroup --lb-name $loadBalancer --public-ip-address $loadBalancerFrontEndConfig2 --name $frontEndIpConfig2
# Create the back-end address pools.
echo "Creating $backEndAddressPool1"
az network lb address-pool create --resource-group $resourceGroup --lb-name $loadBalancer --name $backEndAddressPool1
echo "Creating $backEndAddressPool2"
az network lb address-pool create --resource-group $resourceGroup --lb-name $loadBalancer --name $backEndAddressPool2
# Create a probe on port 80.
echo "Creating $probe80 in $loadBalancer"
az network lb probe create --resource-group $resourceGroup --lb-name $loadBalancer --name $probe80 --protocol Http --port 80 --path /
# Create the load balancing rules forport 80.
echo "Creating $lbRuleConfig1 for $loadBalancer"
az network lb rule create --resource-group $resourceGroup --lb-name $loadBalancer --name $lbRuleConfig1 --protocol Tcp --probe-name $probe80 --frontend-port 5000 --backend-port 5000 --frontend-ip-name $frontEndIpConfig1 --backend-pool-name $backEndAddressPool1
echo "Creating $lbRuleConfig2 for $loadBalancer"
az network lb rule create --resource-group $resourceGroup --lb-name $loadBalancer --name $lbRuleConfig2 --protocol Tcp --probe-name $probe80 --frontend-port 5000 --backend-port 5000 --frontend-ip-name $frontEndIpConfig2 --backend-pool-name $backEndAddressPool2
# ############## VM1 ###############
# Create an Public IP for the first VM.
echo "Creating $publicIpVm1"
az network public-ip create --resource-group $resourceGroup --name $publicIpVm1 --allocation-method Dynamic
# Create a network interface for VM1.
echo "Creating $nicVm1 in $vNet and $subnet"
az network nic create --resource-group $resourceGroup --vnet-name $vNet --subnet $subnet --name $nicVm1 --public-ip-address $publicIpVm1
# Create IP configurations for Contoso and Fabrikam.
echo "Creating $ipConfig1 for $nicVm1"
az network nic ip-config create --resource-group $resourceGroup --name $ipConfig1 --nic-name $nicVm1 --lb-name $loadBalancer --lb-address-pools $backEndAddressPool1
echo "Creating $ipConfig2 for $nicVm1"
az network nic ip-config create --resource-group $resourceGroup --name $ipConfig2 --nic-name $nicVm1 --lb-name $loadBalancer --lb-address-pools $backEndAddressPool2
# Create Vm1.
echo "Creating $vm1"
az vm create --resource-group $resourceGroup --name $vm1 --nics $nicVm1 --image $image --availability-set $availabilitySet --public-ip-sku $ipSku --admin-username $login --generate-ssh-keys
############### VM2 ###############
# Create an Public IP for the second VM.
echo "Creating $publicIpVm2"
az network public-ip create --resource-group $resourceGroup --name $publicIpVm2 --allocation-method Dynamic
# Create a network interface for VM2.
echo "Creating $nicVm2 in $vNet and $subnet"
az network nic create --resource-group $resourceGroup --vnet-name $vNet --subnet $subnet --name $nicVm2 --public-ip-address $publicIpVm2
# Create IP-Configs for Contoso and Fabrikam.
echo "Creating $ipConfig1 for $nicVm2"
az network nic ip-config create --resource-group $resourceGroup --name $ipConfig1 --nic-name $nicVm2 --lb-name $loadBalancer --lb-address-pools $backEndAddressPool1
echo "Creating $ipConfig2 for $nicVm2"
az network nic ip-config create --resource-group $resourceGroup --name $ipConfig2 --nic-name $nicVm2 --lb-name $loadBalancer --lb-address-pools $backEndAddressPool2
# Create Vm2.
echo "Creating $vm2"
az vm create --resource-group $resourceGroup --name $vm2 --nics $nicVm2 --image Ubuntu2204 --availability-set $availabilitySet --public-ip-sku $ipSku --admin-username $login --generate-ssh-keys
# List the virtual machines
az vm list --resource-group $resourceGroup
# </FullScript>
# echo "Deleting all resources"
# az group delete --name $resourceGroup -y
Dokończenie wdrożenia
Uruchom następujące polecenie, aby usunąć grupę zasobów, maszynę wirtualną i wszystkie powiązane zasoby.
az group delete --name myResourceGroup --yes
Wyjaśnienie skryptu
Ten skrypt zawiera następujące polecenia służące do tworzenia grupy zasobów, sieci wirtualnej, modułu równoważenia obciążenia i wszystkich powiązanych zasobów. Każde polecenie w tabeli prowadzi do dokumentacji specyficznej dla danego polecenia.
Komenda | Notatki |
---|---|
az group create (utwórz grupę) | Tworzy grupę zasobów, w której są przechowywane wszystkie zasoby. |
az network vnet create - utwórz sieć wirtualną | Tworzy sieć wirtualną i podsieć platformy Azure. |
az network public-ip create (utwórz publiczny adres IP w sieci) | Tworzy publiczny adres IP przy użyciu statycznego adresu IP i skojarzonej nazwy DNS. |
az network lb create | Tworzy moduł równoważenia obciążenia platformy Azure. |
az network lb probe create | Tworzy sondę równoważnika obciążenia. Sonda modułu równoważenia obciążenia służy do monitorowania każdej maszyny wirtualnej w zestawie modułu równoważenia obciążenia. Jeśli maszyna wirtualna stanie się niedostępna, ruch nie będzie do niej kierowany. |
az network lb rule create (komenda do tworzenia reguły w Load Balancerze) | Tworzy regułę równoważenia obciążenia. W tym przykładzie tworzona jest reguła dla portu 80. Ruch HTTP docierający do modułu równoważenia obciążenia jest kierowany do portu 80 jednej z maszyn wirtualnych w zestawie modułu równoważenia obciążenia. |
az network lb frontend-ip create - utwórz frontendowy adres IP w usłudze równoważenia obciążenia sieci. | Utwórz adres IP frontendowy dla modułu równoważenia obciążenia. |
az network lb address-pool create | Tworzy pulę adresów zaplecza. |
az network nic create | Tworzy wirtualną kartę sieciową i dołącza ją do sieci wirtualnej oraz podsieci. |
az vm availability-set create – utwórz zestaw dostępności dla maszyn wirtualnych | Tworzy zestaw dostępności. Zestawy dostępności zapewniają działanie aplikacji bez przestojów dzięki rozmieszczeniu maszyn wirtualnych w ramach zasobów fizycznych tak, aby niepowodzenie nie wpływało na cały zestaw. |
az network nic ip-config create | Tworzy konfigurację adresu IP. Aby Twoja subskrypcja mogła korzystać z funkcji Microsoft.Network/AllowMultipleIpConfigurationsPerNic, musi być ona włączona. Jako podstawową konfigurację IP można wyznaczyć tylko jedną konfigurację na kartę sieciową, używając flagi --make-primary. |
az vm create | Tworzy maszynę wirtualną i łączy ją z kartą sieciową, siecią wirtualną, podsiecią i grupą zabezpieczeń sieci. To polecenie określa również obraz maszyny wirtualnej do użycia oraz poświadczenia administracyjne. |
az group delete - usuwa grupę zasobów w Azure | Usuwa grupę zasobów wraz ze wszystkimi zagnieżdżonymi zasobami. |
Następne kroki
Aby uzyskać więcej informacji na temat interfejsu wiersza polecenia platformy Azure, zobacz dokumentację interfejsu wiersza polecenia platformy Azure.
Dodatkowe przykłady skryptów CLI dla sieci można znaleźć w dokumentacji przeglądowej sieci Azure.