Kurz: Instalace aplikací ve škálovacích sadách virtuálních počítačů pomocí Azure CLI

Pokud chcete spouštět aplikace na instancích virtuálních počítačů ve škálovací sadě, musíte nejprve nainstalovat komponenty aplikace a požadované soubory. V předchozím kurzu jste zjistili, jak vytvořit a použít vlastní image virtuálního počítače k nasazení instancí virtuálních počítačů. Tato vlastní image zahrnovala ruční instalaci a konfiguraci aplikací. Můžete automatizovat také instalaci aplikací do škálovací sady po nasazení všech instancí virtuálních počítačů nebo aktualizaci aplikace, která je již ve škálovací sadě spuštěná. V tomto kurzu se naučíte:

  • Automatická instalace aplikací do škálovací sady
  • Použití rozšíření vlastních skriptů Azure
  • Aktualizace spuštěné aplikace ve škálovací sadě

Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.

Požadavky

  • Tento článek vyžaduje verzi 2.0.29 nebo novější azure CLI. Pokud používáte Azure Cloud Shell, je už nainstalovaná nejnovější verze.

Co je rozšíření vlastních skriptů Azure?

Rozšíření vlastních skriptů stahuje a spouští skripty na virtuálních počítačích Azure. Toto rozšíření je užitečné pro konfiguraci po nasazení, instalaci softwaru nebo jakékoli jiné úlohy konfigurace nebo správy. Skripty si můžete stáhnout z úložiště Azure nebo z GitHubu, případně je za běhu rozšíření najdete na webu Azure Portal.

Rozšíření vlastních skriptů se integruje se šablonami Azure Resource Manageru a je možné ho používat také s Azure CLI, Azure PowerShellem, webem Azure Portal nebo rozhraním REST API. Další informace najdete v tématu Přehled rozšíření vlastních skriptů.

Rozšíření vlastních skriptů v Azure CLI použijete tak, že vytvoříte soubor JSON definující, které soubory se mají získat a které příkazy se mají provést. Tyto definice JSON je možné opakovaně používat napříč nasazeními škálovací sady, aby se zajistilo používání konzistentních instalací aplikací.

Vytvoření definice rozšíření vlastních skriptů

Abychom se podívali na rozšíření vlastních skriptů v akci, vytvoříme škálovací sadu, která nainstaluje webový server NGINX a vypíše název hostitele instance virtuálního počítače ve škálovací sadě. Následující definice rozšíření vlastních skriptů stáhne ukázkový skript z GitHubu, nainstaluje požadované balíčky a pak vypíše název hostitele instance virtuálního počítače na základní stránce HTML.

V aktuálním prostředí vytvořte soubor customConfig.json a vložte do něj následující konfiguraci. Soubor vytvořte například v Cloud Shellu, pokud nepracujete na místním počítači. Můžete použít libovolný editor podle svojí volby. V tomto kurzu použijeme Vi. Zadejtevi do Cloud Shellu. Vložte následující JSON do editoru a zadejte :w customConfig.json.

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

Poznámka:

Pokud se rozhodnete odkazovat přímo na JSON (místo odkazování na soubor customConfig.json ) v parametru --settings níže, budete možná muset invertovat použití jednoduchých a dvojitých uvozovek (").

Vytvoření škálovací sady

Důležité

Od listopadu 2023 se škálovací sady virtuálních počítačů vytvořené pomocí PowerShellu a Azure CLI ve výchozím nastavení nastaví do flexibilního režimu orchestrace, pokud není zadaný žádný režim orchestrace. Další informace o této změně a akcích, které byste měli provést, najdete v tématu Zásadní změna pro zákazníky PowerShellu nebo rozhraní příkazového řádku VMSS – Microsoft Community Hub.

Vytvořte skupinu prostředků pomocí příkazu az group create. Následující příklad vytvoří skupinu prostředků myResourceGroup v umístění eastus:

az group create --name myResourceGroup --location eastus

Teď vytvořte škálovací sadu virtuálních počítačů pomocí příkazu az vmss create. Následující příklad vytvoří škálovací sadu myScaleSet a vygeneruje klíče SSH, pokud ještě neexistují:

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

Vytvoření a konfigurace všech prostředků škálovací sady a virtuálních počítačů trvá několik minut.

Použití rozšíření vlastních skriptů

Použijte konfiguraci rozšíření vlastních skriptů na instance virtuálních počítačů ve škálovací sadě pomocí příkazu az vmss extension set. Následující příklad použije konfiguraci customConfig.json na instance virtuálních počítačů ve škálovací sadě myScaleSet a ve skupině prostředků myResourceGroup:

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

Upozornění

V názvech souborů se rozlišují malá a velká písmena. Pokud se chcete vyhnout selhání, použijte přesný název souboru uvedený v těchto pokynech.

Použití rozšíření u existujících instancí škálovací sady

Upgradujte všechny instance, aby se použil vlastní skript. Upgrade může trvat několik minut.

az vmss update-instances --resource-group myResourceGroup --name myScaleSet --instance-ids "*"

Povolit provoz na port 80

Pokud chcete povolit průchod provozu přes nástroj pro vyrovnávání zatížení do virtuálních počítačů, je potřeba aktualizovat výchozí skupinu zabezpečení sítě.

az network nsg rule create --name AllowHTTP --resource-group myResourceGroup --nsg-name myScaleSetNSG --access Allow --priority 1010 --destination-port-ranges 80 

Test škálovací sady

Pokud chcete vidět svůj webový server v akci, získejte veřejnou IP adresu vašeho nástroje pro vyrovnávání zatížení pomocí příkazu az network public-ip show. Následující příklad získá IP adresu myScaleSetLBPublicIP vytvořenou jako součást škálovací sady:

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

Zadejte veřejnou IP adresu nástroje pro vyrovnávání zatížení do webového prohlížeče. Nástroj pro vyrovnávání zatížení distribuuje provoz do jedné z vašich instancí virtuálních počítačů, jak je znázorněno v následujícím příkladu:

Základní webová stránka na serveru NGINX

Nechte webový prohlížeč otevřený, abyste v dalším kroku viděli aktualizovanou verzi.

Změna zásad upgradu

V předchozí části byla potřeba ruční upgrade, aby se aktualizovaná aplikace použila pro všechny instance škálovací sady. Pokud chcete povolit automatické použití aktualizací pro všechny existující instance škálovací sady, aktualizujte zásadu upgradu z ruční na automatickou. Další informace ozásadách

az vmss update \
    --name myScaleSet \
    --resource-group myResourceGroup \
    --set upgradePolicy.mode=automatic

Aktualizace nasazení aplikace

V aktuálním prostředí vytvořte soubor customConfigv2.json a vložte do něj následující konfiguraci. Tato definice spustí aktualizovanou verzi v2 instalačního skriptu aplikace:

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

Znovu použijte konfiguraci rozšíření vlastních skriptů na škálovací sadu pomocí příkazu az vmss extension set. Soubor customConfigv2.json slouží k použití aktualizované verze aplikace:

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

Vzhledem k tomu, že škálovací sada teď používá zásadu automatického upgradu, aktualizovaná aplikace se automaticky použije u existujících instancí škálovací sady. Aktualizujte webový prohlížeč, aby se zobrazila aktualizovaná aplikace.

Aktualizovaná webová stránka na serveru NGINX

Vyčištění prostředků

Pokud chcete odebrat škálovací sadu a další prostředky, odstraňte skupinu prostředků a všechny její prostředky pomocí příkazu az group delete. Parametr --no-wait vrátí řízení na příkazový řádek bez čekání na dokončení operace. Parametr --yes potvrdí, že chcete prostředky odstranit, aniž by se na to zobrazoval další dotaz.

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

Další kroky

V tomto kurzu jste zjistili, jak automaticky instalovat a aktualizovat aplikace ve škálovací sadě pomocí Azure CLI:

  • Automatická instalace aplikací do škálovací sady
  • Použití rozšíření vlastních skriptů Azure
  • Aktualizace spuštěné aplikace ve škálovací sadě

V dalším kurzu se dozvíte, jak škálovací sadu automaticky škálovat.