Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Para executar aplicações em instâncias de máquinas virtuais (VM) num conjunto de escalonamento, primeiro é necessário instalar os componentes da aplicação e os arquivos necessários. Em um tutorial anterior, você aprendeu como criar e usar uma imagem de VM personalizada para implantar suas instâncias de VM. Esta imagem personalizada incluía instalações e configurações manuais de aplicativos. Você também pode automatizar a instalação de aplicativos em um conjunto de escala depois que cada instância de VM é implantada ou atualizar um aplicativo que já é executado em um conjunto de escala. Neste tutorial você aprenderá a:
- Instale automaticamente aplicações no seu conjunto de escalas
- Usar a Extensão de Script Personalizado do Azure
- Atualizar um aplicativo em execução em um conjunto de escala
Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
Azure Cloud Shell
O Azure aloja o Azure Cloud Shell, um ambiente de shell interativo que pode utilizar através do seu browser. Você pode usar o Bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure. Você pode usar os comandos pré-instalados do Cloud Shell para executar o código neste artigo, sem precisar instalar nada em seu ambiente local.
Para iniciar o Azure Cloud Shell:
| Opção | Exemplo/Ligação |
|---|---|
| Selecione Experimentar no canto superior direito de um código ou bloco de comandos. Selecionar Experimentar não copia automaticamente o código ou comando para o Cloud Shell. |
|
| Vá para https://shell.azure.com, ou selecione o botão Iniciar o Cloud Shell para abrir o Cloud Shell no navegador. |
|
| Selecione o botão Cloud Shell na barra de menus no canto superior direito do portal do Azure. |
|
Para usar o Azure Cloud Shell:
Inicie o Cloud Shell.
Selecione o botão Copiar em um bloco de código (ou bloco de comando) para copiar o código ou comando.
Cole o código ou comando na sessão do Cloud Shell selecionando Ctrl+Shift+V no Windows e Linux ou selecionando Cmd+Shift+V no macOS.
Selecione Enter para executar o código ou comando.
O que é a Extensão de Script Personalizado do Azure?
A Extensão de Script Personalizada baixa e executa scripts em VMs do Azure. Esta extensão é útil para configuração pós-implantação, instalação de software ou qualquer outra tarefa de configuração / gerenciamento. Os scripts podem ser baixados do armazenamento do Azure ou do GitHub, ou fornecidos ao portal do Azure em tempo de execução de extensão.
A extensão Script Personalizado integra-se com modelos do Azure Resource Manager. Ele também pode ser usado com a CLI do Azure, o Azure PowerShell, o portal do Azure ou a API REST. Para obter mais informações, consulte a Visão geral da extensão de script personalizada.
Para ver a Extensão de Script Personalizada em ação, crie um conjunto de escala que instale o servidor Web do IIS e produza o nome do host da instância da VM do conjunto de escala. A definição de Extensão de Script Personalizada baixa um script de exemplo do GitHub, instala os pacotes necessários e grava o nome do host da instância da VM em uma página HTML básica.
Criar um conjunto de escalas
Crie um grupo de recursos com New-AzResourceGroup. O exemplo a seguir cria um grupo de recursos chamado myResourceGroup no local Leste dos EUA :
New-AzResourceGroup -Name myResourceGroup -Location "East US"
Agora crie um conjunto de escala de máquina virtual com New-AzVmss. Para distribuir o tráfego para as instâncias individuais da VM, um balanceador de carga também é criado. O balanceador de carga inclui regras para distribuir o tráfego na porta TCP 80. Ele também permite o tráfego da área de trabalho remota na porta TCP 3389 e a comunicação remota do PowerShell na porta TCP 5985. Quando solicitado, você pode definir suas próprias credenciais administrativas para as instâncias de VM no conjunto de escala:
New-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet" `
-OrchestrationMode "Flexible" `
-Location "EastUS" `
-UpgradePolicyMode "Manual" `
-VirtualNetworkName "myVnet" `
-SubnetName "mySubnet" `
-PublicIpAddressName "myPublicIPAddress" `
-LoadBalancerName "myLoadBalancer"
Demora alguns minutos para criar e configurar todos os recursos do conjunto de dimensionamento e as VMs.
Criar definição de extensão de script personalizada
O Azure PowerShell usa uma hashtable para armazenar o arquivo a ser baixado e o comando a ser executado. No exemplo a seguir, um script de exemplo do GitHub é usado. Primeiro, crie este objeto de configuração da seguinte maneira:
$customConfig = @{
"fileUris" = (,"https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate-iis.ps1");
"commandToExecute" = "powershell -ExecutionPolicy Unrestricted -File automate-iis.ps1"
}
Agora, aplique a extensão de script personalizado com Add-AzVmssExtension. O objeto de configuração definido anteriormente é passado para a extensão. Atualize a extensão nas instâncias de perfil do conjunto de escalas com 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
Adicionar a extensão às instâncias do conjunto de escalas existente
Execute uma atualização manual para aplicar a extensão atualizada a todas as instâncias de conjunto de escala existentes. A atualização pode levar alguns minutos para ser concluída.
Update-AzVmssInstance -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "*"
Cada instância de VM no conjunto de escala baixa e executa o script do GitHub. Em um exemplo mais complexo, vários componentes e arquivos de aplicativos podem ser instalados. Se o conjunto de dimensionamento for dimensionado para cima, as novas instâncias de VM aplicarão automaticamente a mesma definição de Extensão de Script Personalizada e instalarão o aplicativo necessário.
Permitir tráfego para o aplicativo
Para permitir o acesso ao aplicativo Web básico, crie um grupo de segurança de rede com New-AzNetworkSecurityRuleConfig e New-AzNetworkSecurityGroup. Para obter mais informações, consulte Rede para conjuntos de escala de máquina virtual do 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
Teste o seu conjunto de escalas
Para ver o seu servidor Web em ação, obtenha o endereço IP público do seu balanceador de carga com Get-AzPublicIpAddress. O exemplo a seguir exibe o endereço IP criado no grupo de recursos myResourceGroup :
Get-AzPublicIpAddress -ResourceGroupName "myResourceGroup" | Select IpAddress
Insira o endereço IP público do balanceador de carga em um navegador da Web. O balanceador de carga distribui o tráfego para uma de suas instâncias de VM, conforme mostrado no exemplo a seguir:
Deixe o navegador da Web aberto para que você possa ver uma versão atualizada na próxima etapa.
Alterar a política de atualização
Na seção anterior, para aplicar o aplicativo atualizado a todas as instâncias do conjunto de escalas, era necessária uma atualização manual. Para permitir que as atualizações sejam aplicadas automaticamente a todas as instâncias de conjuntos de escala existentes, atualize a política de atualização de manual para automática. Para obter mais informações sobre políticas de atualização, consulte Políticas de atualização para conjuntos de dimensionamento de máquinas virtuais.
$vmss = Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"
Update-Azvmss `
-ResourceGroupName "myResourceGroup" `
-Name "myScaleSet" `
-UpgradePolicyMode "Automatic" `
-VirtualMachineScaleSet $vmss
Atualizar a implantação do aplicativo
Durante todo o ciclo de vida de um conjunto de escalas, talvez seja necessário implantar uma versão atualizada do seu aplicativo. Com a Extensão de Script Personalizado, você pode fazer referência a um script de implantação atualizado e, em seguida, reaplicar a extensão ao seu conjunto de escala.
Crie uma nova definição de configuração chamada customConfigv2. Esta definição executa uma versão v2 atualizada do script de instalação do aplicativo:
$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"
}
Atualize a configuração da Extensão de Script Personalizada para as instâncias de VM em seu conjunto de escala. A definição customConfigv2 é usada para aplicar a versão atualizada do aplicativo ao conjunto de escalas:
$vmss = Get-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet"
$vmss.VirtualMachineProfile.ExtensionProfile[0].Extensions[0].Settings = $customConfigv2
Update-AzVmss `
-ResourceGroupName "myResourceGroup" `
-Name "myScaleSet" `
-VirtualMachineScaleSet $vmss
Como o conjunto de escala agora está usando uma política de atualização automática, o aplicativo atualizado será aplicado automaticamente às instâncias de conjunto de escala existentes. Atualize seu navegador da Web para ver o aplicativo atualizado. Para ver a versão atualizada, atualize o site no navegador:
Limpeza de recursos
Para remover o conjunto de escalas e os recursos adicionais, elimine o grupo de recursos e todos os seus recursos com Remove-AzResourceGroup. O -Force parâmetro confirma que você deseja excluir os recursos sem um prompt adicional para fazê-lo. O parâmetro -AsJob devolve o controlo à linha de comandos, sem aguardar a conclusão da operação.
Remove-AzResourceGroup -Name "myResourceGroup" -Force -AsJob
Próximos passos
Neste tutorial, você aprendeu como instalar e atualizar automaticamente aplicativos em seu conjunto de escala com o Azure PowerShell:
- Instale automaticamente aplicações no seu conjunto de escalas
- Usar a Extensão de Script Personalizado do Azure
- Atualizar um aplicativo em execução em um conjunto de escala
Avance para o próximo tutorial para saber como dimensionar automaticamente seu conjunto de escalas.