Sdílet prostřednictvím


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

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 napřed bezplatný účet.

Azure Cloud Shell

Azure hostí interaktivní prostředí Azure Cloud Shell, které můžete používat v prohlížeči. Pro práci se službami Azure můžete v prostředí Cloud Shell použít buď Bash, nebo PowerShell. Předinstalované příkazy Cloud Shellu můžete použít ke spuštění kódu v tomto článku, aniž byste museli instalovat cokoli do místního prostředí.

Spuštění služby Azure Cloud Shell:

Možnost Příklad nebo odkaz
Vyberte Vyzkoušet v pravém horním rohu bloku kódu nebo příkazu. Výběrem možnosti Vyzkoušet se kód ani příkaz automaticky nekopíruje do Cloud Shellu. Snímek obrazovky znázorňující příklad možnosti Vyzkoušet pro Azure Cloud Shell
Přejděte na adresu https://shell.azure.com nebo výběrem tlačítka Spustit Cloud Shell otevřete Cloud Shell v prohlížeči. Tlačítko pro spuštění Azure Cloud Shellu
Zvolte tlačítko Cloud Shell v pruhu nabídky v pravém horním rohu webu Azure Portal. Snímek obrazovky znázorňující tlačítko Cloud Shell na webu Azure Portal

Použití Azure Cloud Shellu:

  1. Spusťte Cloud Shell.

  2. Výběrem tlačítka Kopírovat v bloku kódu (nebo bloku příkazů) zkopírujte kód nebo příkaz.

  3. Vložte kód nebo příkaz do relace Cloud Shellu tak, že ve Windows a Linuxu vyberete ctrl+Shift+V nebo vyberete Cmd+Shift+V v macOS.

  4. Stisknutím klávesy Enter spusťte kód nebo příkaz.

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. Dá se použít také s Azure CLI, Azure PowerShellem, azure portalem nebo rozhraním REST API. Další informace najdete v tématu Přehled rozšíření vlastních skriptů.

Pokud se chcete podívat na rozšíření vlastních skriptů v akci, vytvořte škálovací sadu, která nainstaluje webový server služby IIS a vypíše název hostitele instance virtuálního počítače ve škálovací sadě. 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.

Vytvoření škálovací sady

Vytvořte skupinu prostředků pomocí rutiny New-AzResourceGroup. Následující příklad vytvoří skupinu prostředků myResourceGroup v umístění USA – východ:

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

Teď vytvořte škálovací sadu virtuálních počítačů pomocí Rutiny New-AzVmss. Za účelem distribuce provozu do jednotlivých instancí virtuálních počítačů se vytvoří také nástroj pro vyrovnávání zatížení. Nástroj pro vyrovnávání zatížení obsahuje pravidla pro distribuci provozu na portu TCP 80. Umožňuje také přenosy vzdálené plochy na portu TCP 3389 a vzdálené komunikaci PowerShellu na portu TCP 5985. Po zobrazení výzvy můžete pro instance virtuálních počítačů ve škálovací sadě nastavit vlastní přihlašovací údaje správce:

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

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

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

Azure PowerShell k uložení souboru ke stažení a příkazu ke spuštění používá zatřiďovací tabulku. V následujícím příkladu se používá ukázkový skript z GitHubu. Nejprve následujícím způsobem vytvořte tento objekt konfigurace:

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

Teď použijte rozšíření vlastních skriptů pomocí rutiny Add-AzVmssExtension. Do rozšíření se přidá objekt konfigurace definovaný dříve. Aktualizujte rozšíření instancí profilu škálovací sady pomocí 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

Přidání rozšíření do existujících instancí škálovací sady

Proveďte ruční upgrade, aby se aktualizované rozšíření použilo pro všechny existující instance škálovací sady. Dokončení aktualizace může trvat několik minut.

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

Každá instance virtuálního počítače ve škálovací sadě stáhne a spustí skript z GitHubu. Ve složitějším příkladu se můžou nainstalovat komponenty a soubory několika aplikací. Pokud dojde k vertikálnímu navýšení kapacity škálovací sady, nové instance virtuálních počítačů automaticky použijí stejnou definici rozšíření vlastních skriptů a nainstalují požadovanou aplikaci.

Povolení provozu do aplikace

Pokud chcete povolit přístup k základní webové aplikaci, vytvořte skupinu zabezpečení sítě pomocí Rutiny New-AzNetworkSecurityRuleConfig a New-AzNetworkSecurityGroup. Další informace najdete v tématu Sítě pro škálovací sady virtuálních počítačů 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

Test škálovací sady

Pokud chcete zobrazit váš webový server v akci, získejte veřejnou IP adresu vašeho nástroje pro vyrovnávání zatížení pomocí rutiny Get-AzPublicIpAddress. Následující příklad zobrazí IP adresu vytvořenou ve skupině prostředků myResourceGroup :

Get-AzPublicIpAddress -ResourceGroupName "myResourceGroup" | Select IpAddress

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 ve službě IIS

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

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

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

Aktualizace nasazení aplikace

V průběhu životního cyklu škálovací sady možná budete potřebovat nasadit aktualizovanou verzi své aplikace. Díky rozšíření vlastních skriptů můžete přidat odkaz na aktualizovaný skript nasazení a pak znovu použít rozšíření na škálovací sadu.

Vytvořte novou definici konfigurace customConfigv2. Tato definice spustí aktualizovanou verzi v2 instalačního skriptu aplikace:

$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"
}

Aktualizujte konfiguraci rozšíření vlastních skriptů na instance virtuálních počítačů ve škálovací sadě. Definice customConfigv2 se používá k použití aktualizované verze aplikace na škálovací sadu:

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

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. Pokud chcete zobrazit aktualizovanou verzi, aktualizujte webovou stránku ve svém prohlížeči:

Aktualizovaná webová stránka ve službě IIS

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í remove-AzResourceGroup. Parametr -Force potvrdí, že chcete prostředky odstranit, aniž by se na to zobrazoval další dotaz. Parametr -AsJob vrátí řízení na příkazový řádek bez čekání na dokončení operace.

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

Další kroky

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

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