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 manuální instalaci a konfiguraci aplikací. Můžete také automatizovat instalaci aplikací do škálovací sady po nasazení každé instance virtuálního počítače nebo aktualizovat aplikaci, která už běží ve škálovací sadě. V tomto kurzu se naučíte:

  • Automatická instalace aplikací do škálovací sady
  • Použijte rozšíření vlastního skriptu Azure
  • Aktualizujte běžící aplikaci v škálovací sadě

Pokud nemáte předplatné Azure, vytvořte si bezplatný účet před zahájením.

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, který ukazuje příklad funkce
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. Kód nebo příkaz vložte do relace Cloud Shell následujícím způsobem: na Windows a Linuxu stiskněte Ctrl+Shift+V, na macOS použijte Cmd+Shift+V.

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

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

Rozšíření Custom Script Extension stáhne a spustí skripty na VM Azure. Toto rozšíření je užitečné pro konfiguraci po nasazení, instalaci softwaru nebo jakoukoli jinou úlohu konfigurace nebo správy. Skripty je možné stáhnout z úložiště Azure nebo z GitHubu nebo je můžete poskytnout webu Azure Portal za běhu rozšíření.

Rozšíření Custom Script 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 přehledu rozšíření vlastních skriptů.

Pokud chcete vidět rozšíření vlastního skriptu v praxi, vytvořte škálovací sadu, která nainstaluje webový server IIS a zobrazí název hostitele instance virtuálního počítače této škálovací sady. Definice rozšíření vlastních skriptů stáhne ukázkový skript z GitHubu, nainstaluje požadované balíčky a potom zapíše název hostitele instance virtuálního počítače na základní stránku HTML.

Vytvořte škálovací sadu

Vytvořte skupinu prostředků pomocí příkazu 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"

Nyní vytvořte škálovací sadu virtuálních počítačů pomocí New-AzVmss. K distribuci 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é provoz vzdálené plochy na portu TCP 3389 a vzdálené ovládání 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 používá hashtable k uložení souboru ke stažení a příkazu ke spuštění. V následujícím příkladu se používá ukázkový skript z GitHubu. Nejprve vytvořte tento objekt konfigurace následujícím způsobem:

$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. Dříve definovaný objekt konfigurace se předá rozšíření. 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. V složitějším příkladu je možné nainstalovat více komponent aplikací a souborů. Pokud se sada virtuálních strojů zvýší, nové instance automaticky použijí stejnou definici rozšíření vlastního skriptu a nainstalují požadovanou aplikaci.

Povolit přístup k aplikaci

Pokud chcete povolit přístup k základní webové aplikaci, vytvořte skupinu zabezpečení sítě pomocí 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

Testování š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 zobrazuje IP adresu, která byla vytvořena 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 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 aktualizace

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 o zásadách upgradu naleznete v Zásady upgrade pro sady škálování virtuálních počítačů.

$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 muset nasadit aktualizovanou verzi aplikace. S rozšířením pro vlastní skripty můžete využít aktualizovaný skript nasazení a pak rozšíření znovu aplikovat na vaši škálovací sadu.

Vytvořte novou definici konfigurace s názvem customConfigv2. Tato definice spouští 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í uživatelských skriptů pro instance virtuálních počítačů v rámci vaší škálovací sady. 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 web v prohlížeči:

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

Vyčistěte zdroje

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 předá řízení zpět na příkazový řádek, aniž by čekal 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žijte rozšíření vlastního skriptu Azure
  • Aktualizujte běžící aplikaci v škálovací sadě

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