Implante seu aplicativo em conjuntos de dimensionamento de máquina virtual
Nota
Este documento aborda os Conjuntos de Dimensionamento de Máquina Virtual em execução no modo de Orquestração Uniforme. Recomendamos o uso da Orquestração Flexível para novas cargas de trabalho. Para obter mais informações, consulte Modos de orquestração para conjuntos de escala de máquina virtual no Azure.
Para executar aplicações em instâncias de máquina virtual (VM) num conjunto de dimensionamento, primeiro tem de instalar os componentes da aplicação e os ficheiros necessários. Este artigo apresenta maneiras de criar uma imagem de VM personalizada para instâncias em um conjunto de escala ou executar automaticamente scripts de instalação em instâncias de VM existentes. Você também aprende a gerenciar atualizações de aplicativos ou sistemas operacionais em um conjunto de escalas.
Criar uma imagem de VM personalizada
Quando você usa uma das imagens da plataforma Azure para criar as instâncias em seu conjunto de escala, nenhum software adicional é instalado ou configurado. Você pode automatizar a instalação desses componentes, no entanto, isso aumenta o tempo necessário para provisionar instâncias de VM para seus conjuntos de escala. Se você aplicar muitas alterações de configuração às instâncias de VM, haverá sobrecarga de gerenciamento com esses scripts e tarefas de configuração.
Para reduzir o gerenciamento de configuração e o tempo para provisionar uma VM, você pode criar uma imagem de VM personalizada que esteja pronta para executar seu aplicativo assim que uma instância for provisionada no conjunto de escala. Para obter mais informações sobre como criar e usar uma imagem de VM personalizada com um conjunto de escalas, consulte os seguintes tutoriais:
Instalar um aplicativo com a Extensão de Script Personalizada
A Extensão de Script Personalizado transfere e executa scripts em VMs do Azure. Esta extensão é útil para a configuração pós-implementação, instalação de software ou qualquer outra tarefa de gestão/configuração. Os scripts podem ser transferidos a partir do armazenamento do Azure ou do GitHub, ou fornecidos para o portal do Azure no runtime da extensão. Para obter mais informações sobre como instalar um aplicativo com uma extensão de script personalizada, consulte os seguintes tutoriais:
Instalar um aplicativo em uma VM do Windows com o PowerShell DSC
A Configuração de Estado Desejado (DSC) do PowerShell é uma plataforma de gerenciamento para definir a configuração das máquinas de destino. As configurações DSC definem o que instalar em uma máquina e como configurar o host. Um mecanismo do Gerenciador de Configuração Local (LCM) é executado em cada nó de destino que processa ações solicitadas com base em configurações por push.
A extensão DSC do PowerShell permite personalizar instâncias de VM em um conjunto de escala com o PowerShell. O exemplo a seguir:
- Instrui as instâncias de VM a baixar um pacote DSC do GitHub - https://github.com/Azure-Samples/compute-automation-configurations/raw/master/dsc.zip
- Define a extensão para executar um script de instalação -
configure-http.ps1
- Obtém informações sobre um conjunto de escala com Get-AzVmss
- Aplica a extensão às instâncias de VM com Update-AzVmss
A extensão DSC é aplicada às instâncias de VM myScaleSet no grupo de recursos chamado myResourceGroup. Introduza os seus próprios nomes da seguinte forma:
# Define the script for your Desired Configuration to download and run
$dscConfig = @{
"wmfVersion" = "latest";
"configuration" = @{
"url" = "https://github.com/Azure-Samples/compute-automation-configurations/raw/master/dsc.zip";
"script" = "configure-http.ps1";
"function" = "WebsiteTest";
};
}
# Get information about the scale set
$vmss = Get-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet"
# Add the Desired State Configuration extension to install IIS and configure basic website
$vmss = Add-AzVmssExtension `
-VirtualMachineScaleSet $vmss `
-Publisher Microsoft.Powershell `
-Type DSC `
-TypeHandlerVersion 2.24 `
-Name "DSC" `
-Setting $dscConfig
# Update the scale set and apply the Desired State Configuration extension to the VM instances
Update-AzVmss `
-ResourceGroupName "myResourceGroup" `
-Name "myScaleSet" `
-VirtualMachineScaleSet $vmss
Se a política de atualização em seu conjunto de escala for manual, atualize suas instâncias de VM com Update-AzVmssInstance. Este cmdlet aplica a configuração atualizada do conjunto de escala às instâncias de VM e instala seu aplicativo.
Instalar um aplicativo em uma VM Linux com cloud-init
Cloud-init é uma abordagem amplamente utilizada para personalizar uma VM com Linux quando arranca pela primeira vez. Pode utilizar o cloud-init para instalar pacotes e escrever ficheiros ou para configurar utilizadores e segurança. Como o cloud-init é executado durante o processo de arranque inicial, não existem passos adicionais ou agentes necessários a aplicar à configuração.
O cloud-init também funciona em distribuições. Por exemplo, não utiliza apt-get install nem yum install para instalar um pacote. Em vez disso, pode definir uma lista dos pacotes a instalar. O cloud-init utiliza automaticamente a ferramenta de gestão de pacotes nativa para a distribuição que selecionar.
Para obter mais informações, incluindo um exemplo cloud-init.txt arquivo, consulte Usar cloud-init para personalizar VMs do Azure.
Para criar um conjunto de escala e usar um arquivo cloud-init, adicione o --custom-data
parâmetro ao comando az vmss create e especifique o nome de um arquivo cloud-init. O exemplo a seguir cria um conjunto de escala chamado myScaleSet em myResourceGroup e configura instâncias de VM com um arquivo chamado cloud-init.txt. Introduza os seus próprios nomes da seguinte forma:
Importante
A partir de novembro de 2023, os conjuntos de dimensionamento de VM criados usando o PowerShell e a CLI do Azure assumirão como padrão o Modo de Orquestração Flexível se nenhum modo de orquestração for especificado. Para obter mais informações sobre essa alteração e quais ações você deve tomar, vá para Breaking Change for VMSS PowerShell/CLI Customers - Microsoft Community Hub
az vmss create \
--resource-group myResourceGroup \
--name myScaleSet \
--image Ubuntu2204 \
-–orchestration-mode uniform \
--upgrade-policy-mode automatic \
--custom-data cloud-init.txt \
--admin-username azureuser \
--generate-ssh-keys
Instalar aplicações com atualizações do SO
Quando novas versões do sistema operacional estiverem disponíveis, você poderá usar ou criar uma nova imagem personalizada e implantar atualizações do sistema operacional em um conjunto de escala. Cada instância de VM é atualizada para a imagem mais recente que você especificar. Você pode usar uma imagem personalizada com o aplicativo pré-instalado, a Extensão de Script Personalizada ou o DSC do PowerShell para ter seu aplicativo automaticamente disponível à medida que você executa a atualização. Talvez seja necessário planejar a manutenção do aplicativo enquanto executa esse processo para garantir que não haja problemas de compatibilidade de versão.
Se você usar uma imagem de VM personalizada com o aplicativo pré-instalado, poderá integrar as atualizações do aplicativo a um pipeline de implantação para criar as novas imagens e implantar atualizações do sistema operacional em todo o conjunto de escala. Essa abordagem permite que o pipeline pegue as compilações de aplicativos mais recentes, crie e valide uma imagem de VM e, em seguida, atualize as instâncias de VM no conjunto de escala. Para executar um pipeline de implantação que cria e implanta atualizações de aplicativos em imagens de VM personalizadas, você pode criar uma imagem Packer e implantar com os Serviços de DevOps do Azure ou usar outra plataforma, como Spinnaker ou Jenkins.
Próximos passos
À medida que cria e implanta aplicativos em seus conjuntos de escala, você pode revisar a Visão geral do design do conjunto de escalas. Para obter mais informações sobre como gerenciar seu conjunto de escalas, consulte Usar o PowerShell para gerenciar seu conjunto de escalas.