Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Als u toepassingen wilt uitvoeren op VM-exemplaren (virtuele machines) in een schaalset, moet u eerst de toepassingsonderdelen en vereiste bestanden installeren. In een vorige zelfstudie hebt u geleerd hoe u een aangepaste VM-afbeelding maakt en gebruikt om uw VM-instanties te implementeren. Deze aangepaste installatiekopieën bevatten handmatige installatie en configuraties van toepassingen. U kunt de installatie van toepassingen ook automatiseren naar een schaalset nadat elk VM-exemplaar is geïmplementeerd of een toepassing bijwerken die al op een schaalset wordt uitgevoerd. In deze zelfstudie leert u het volgende:
- Installeer automatisch toepassingen op uw schaalset
- De aangepaste Scriptextensie van Azure gebruiken
- Een actieve toepassing op een schaalset bijwerken
Als je geen Azure-abonnement hebt, maak dan een gratis account aan voordat je begint.
Azure Cloud Shell
Azure host Azure Cloud Shell, een interactieve shell-omgeving die u via uw browser kunt gebruiken. U kunt Bash of PowerShell gebruiken met Cloud Shell om met Azure-services te werken. U kunt de vooraf geïnstalleerde Cloud Shell-opdrachten gebruiken om de code in dit artikel uit te voeren zonder dat u iets hoeft te installeren in uw lokale omgeving.
Om Azure Cloud Shell op te starten:
| Optie | Voorbeeld/koppeling |
|---|---|
| Selecteer Uitproberen in de rechterbovenhoek van een code- of opdrachtblok. Als u Try It selecteert, wordt de code of opdracht niet automatisch gekopieerd naar Cloud Shell. |
|
| Ga naar https://shell.azure.com, of selecteer de knop Cloud Shell starten om Cloud Shell in uw browser te openen. |
|
| Klik op de knop Cloud Shell in het menu in de balk rechtsboven in de Azure-portal. |
|
Azure Cloud Shell gebruiken:
Start Cloud Shell.
Selecteer de knop Kopiëren op een codeblok (of opdrachtblok) om de code of opdracht te kopiëren.
Plak de code of opdracht in de Cloud Shell-sessie door op Windows en Linux de toetsencombinatie Ctrl+Shift+V in te drukken, of op macOS de toetsencombinatie Cmd+Shift+V te gebruiken.
Selecteer Enter om de code of opdracht uit te voeren.
Wat is de aangepaste Scriptextensie van Azure?
De aangepaste scriptextensie downloadt en voert scripts uit op Azure-VM's. Deze extensie is handig voor configuratie na implementatie, software-installatie of een andere configuratie/beheertaak. Scripts kunnen worden gedownload vanuit Azure Storage of GitHub, of worden verstrekt aan Azure Portal tijdens runtime van de extensie.
De aangepaste scriptextensie kan worden geïntegreerd met Azure Resource Manager-sjablonen. Het kan ook worden gebruikt met de Azure CLI, Azure PowerShell, Azure Portal of de REST API. Zie het overzicht van de aangepaste scriptextensie voor meer informatie.
Als u de aangepaste scriptextensie in actie wilt zien, maakt u een schaalset waarmee de IIS-webserver wordt geïnstalleerd en wordt de hostnaam van het VM-exemplaar van de schaalset uitgevoerd. De definitie van de aangepaste scriptextensie downloadt een voorbeeldscript van GitHub, installeert de vereiste pakketten en schrijft vervolgens de hostnaam van het VM-exemplaar naar een eenvoudige HTML-pagina.
Een schaalset maken
Maak een resourcegroep met behulp van de opdracht New-AzResourceGroup. In het volgende voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt op de locatie VS - oost:
New-AzResourceGroup -Name myResourceGroup -Location "East US"
Maak nu met New-AzVmss een set met schaalbare virtuele machines. Er wordt ook een load balancer gemaakt om verkeer te distribueren naar de afzonderlijke VM-exemplaren. De load balancer bevat regels voor het distribueren van verkeer op TCP-poort 80. Het staat ook extern bureaublad-verkeer toe op TCP-poort 3389 en externe communicatie via PowerShell op TCP-poort 5985. Wanneer u hierom wordt gevraagd, kunt u uw eigen beheerderreferenties instellen voor de VM's in de schaalset.
New-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet" `
-OrchestrationMode "Flexible" `
-Location "EastUS" `
-UpgradePolicyMode "Manual" `
-VirtualNetworkName "myVnet" `
-SubnetName "mySubnet" `
-PublicIpAddressName "myPublicIPAddress" `
-LoadBalancerName "myLoadBalancer"
Het duurt enkele minuten om alle schaalsetresources en VM's te maken en te configureren.
Definitie van aangepaste scriptextensie maken
Azure PowerShell maakt gebruik van een hashtabel om het bestand op te slaan om het te downloaden en de opdracht uit te voeren. In het volgende voorbeeld wordt een voorbeeldscript van GitHub gebruikt. Maak eerst dit configuratieobject als volgt:
$customConfig = @{
"fileUris" = (,"https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate-iis.ps1");
"commandToExecute" = "powershell -ExecutionPolicy Unrestricted -File automate-iis.ps1"
}
Pas nu de aangepaste scriptextensie toe met Add-AzVmssExtension. Het eerder gedefinieerde configuratieobject wordt doorgegeven aan de extensie. Werk de extensie bij op de schaalsetprofielexemplaren met 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
Voeg de extensie toe aan de bestaande schaalsetexemplaren
Voer een handmatige upgrade uit om de geüpdatete extensie toe te passen op alle bestaande instances van schaalsets. Het kan enkele minuten duren voordat de update is voltooid.
Update-AzVmssInstance -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "*"
Elk VM-exemplaar in de schaalset downloadt en voert het script uit vanuit GitHub. In een complexer voorbeeld kunnen meerdere toepassingsonderdelen en -bestanden worden geïnstalleerd. Als de schaalset wordt vergroot, passen de nieuwe VM-instanties automatisch dezelfde aangepaste scriptextensie-definitie toe en installeren de vereiste toepassing.
Verkeer naar applicatie toestaan
Als u toegang tot de basiswebtoepassing wilt toestaan, maakt u een netwerkbeveiligingsgroep met New-AzNetworkSecurityRuleConfig en New-AzNetworkSecurityGroup. Zie Netwerken voor virtuele-machineschaalsets van Azure voor meer informatie.
#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 uw schaalset
Als u de webserver in actie wilt zien, haalt u het openbare IP-adres van uw load balancer op met Get-AzPublicIpAddress. In het volgende voorbeeld wordt het IP-adres weergegeven dat is gemaakt in de resourcegroep myResourceGroup :
Get-AzPublicIpAddress -ResourceGroupName "myResourceGroup" | Select IpAddress
Voer het openbare IP-adres van de load balancer in in een webbrowser. De load balancer distribueert verkeer naar een van uw VM-exemplaren, zoals wordt weergegeven in het volgende voorbeeld:
Laat de webbrowser geopend zodat u in de volgende stap een bijgewerkte versie kunt zien.
Het upgradebeleid wijzigen
In de vorige sectie was een handmatige upgrade nodig om de geüpdatete toepassing toe te passen op alle exemplaren van de schalingsset. Als u wilt dat updates automatisch worden toegepast op alle bestaande schaalsetexemplaren, werkt u het upgradebeleid bij van handmatig naar automatisch. Zie Upgradebeleidsregels voor virtuele-machineschaalsets voor meer informatie over upgradebeleid.
$vmss = Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"
Update-Azvmss `
-ResourceGroupName "myResourceGroup" `
-Name "myScaleSet" `
-UpgradePolicyMode "Automatic" `
-VirtualMachineScaleSet $vmss
App-implementatie bijwerken
Tijdens de levenscyclus van een schaalset moet u mogelijk een bijgewerkte versie van uw toepassing implementeren. Met de aangepaste scriptextensie kunt u verwijzen naar een bijgewerkt implementatiescript en vervolgens de extensie opnieuw toepassen op uw schaalset.
Maak een nieuwe configuratiedefinitie met de naam customConfigv2. Met deze definitie wordt een bijgewerkte v2-versie van het installatiescript van de toepassing uitgevoerd:
$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"
}
Werk de configuratie van de aangepaste scriptextensie bij voor de VM-instanties in uw schaalset. De definitie customConfigv2 wordt gebruikt om de bijgewerkte versie van de toepassing toe te passen op de schaalset:
$vmss = Get-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet"
$vmss.VirtualMachineProfile.ExtensionProfile[0].Extensions[0].Settings = $customConfigv2
Update-AzVmss `
-ResourceGroupName "myResourceGroup" `
-Name "myScaleSet" `
-VirtualMachineScaleSet $vmss
Omdat de schaalset nu gebruikmaakt van een beleid voor automatische upgrade, wordt de bijgewerkte toepassing automatisch toegepast op bestaande schaalsetexemplaren. Vernieuw uw webbrowser om de bijgewerkte toepassing weer te geven. Als u de bijgewerkte versie wilt zien, vernieuwt u de website in uw browser:
De hulpbronnen opschonen
Als u uw schaalset en extra hulpbronnen wilt verwijderen, verwijdert u de resourcegroep en alle bijbehorende hulpbronnen met Remove-AzResourceGroup. De -Force parameter bevestigt dat u de resources wilt verwijderen zonder een extra prompt om dit te doen. De parameter -AsJob retourneert het besturingselement naar de prompt zonder te wachten totdat de bewerking is voltooid.
Remove-AzResourceGroup -Name "myResourceGroup" -Force -AsJob
Volgende stappen
In deze zelfstudie hebt u geleerd hoe u automatisch toepassingen op uw schaalset installeert en bijwerkt met Azure PowerShell:
- Installeer automatisch toepassingen op uw schaalset
- De aangepaste Scriptextensie van Azure gebruiken
- Een actieve toepassing op een schaalset bijwerken
Ga naar de volgende zelfstudie voor meer informatie over het automatisch schalen van uw schaalset.