Tutorial: Instalar aplicativos em conjuntos de dimensionamento de máquina virtual com a CLI do 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. Num tutorial anterior, aprendeu a criar e utilizar uma imagem de VM personalizada para implementar as suas instâncias de VM. Esta imagem personalizada inclui configurações e instalações de aplicações manuais. Pode também automatizar a instalação de aplicações num conjunto de dimensionamento após cada instância de VM ser implementada ou atualizar uma aplicação que já é executada num conjunto de dimensionamento. Neste tutorial, ficará a saber como:
- Instalar automaticamente aplicações no seu conjunto de dimensionamento
- Utilizar a Extensão de Script Personalizado do Azure
- Atualizar uma aplicação em execução num conjunto de dimensionamento
Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.
Pré-requisitos
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Guia de início rápido para Bash no Azure Cloud Shell.
Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.
Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Entrar com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.
Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.
- Este artigo requer a versão 2.0.29 ou posterior da CLI do Azure. Se estiver usando o Azure Cloud Shell, a versão mais recente já está instalada.
O que é a Extensão de Script Personalizado do Azure?
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.
A extensão de Script Personalizado é integrada em modelos do Azure Resource Manager e pode também ser utilizada com a CLI do Azure, o Azure PowerShell, o portal do Azure ou a API REST. Para obter mais informações, veja a Descrição geral da Extensão de Script Personalizado.
Para utilizar a Extensão de Script Personalizado com a CLI do Azure, crie um ficheiro JSON que defina que ficheiros obter e comandos executar. Estas definições de JSON podem ser reutilizadas em implementações de conjuntos de dimensionamento para aplicar instalações de aplicações consistentes.
Criar a definição da Extensão de Script Personalizado
Para ver a Extensão de Script Personalizado em ação, vamos criar um conjunto de dimensionamento que instala o servidor Web NGINX e dá como resultado o nome de anfitrião da instância de VM do conjunto de dimensionamento. A seguinte definição da Extensão de Script Personalizado transfere um script de exemplo do GitHub, instala os pacotes necessários e escreve o nome de anfitrião da instância de VM numa página HTML simples.
Na shell atual, crie um ficheiro com o nome customConfig.json e cole a seguinte configuração. Por exemplo, crie o ficheiro no Cloud Shell, não no seu computador local. Pode utilizar qualquer editor que desejar. Neste tutorial, usaremos o Vi. Entrevi
no Cloud Shell. Cole o JSON abaixo no editor e digite :w customConfig.json
.
{
"fileUris": ["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate_nginx.sh"],
"commandToExecute": './automate_nginx.sh'
}
Nota
Talvez seja necessário inverter o uso das aspas simples (') e duplas (") dentro do bloco JSON se decidir fazer referência ao JSON diretamente (em vez de fazer referência ao arquivo customConfig.json ) no parâmetro --settings abaixo.
Criar um conjunto de dimensionamento
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
Crie um grupo de recursos com az group create. O exemplo seguinte cria um grupo de recursos com o nome myResourceGroup na localização eastus:
az group create --name myResourceGroup --location eastus
Agora crie um conjunto de escala de máquina virtual com az vmss create. O exemplo seguinte cria um conjunto nomeado de dimensionamento myScaleSet e gera chaves SSH, caso não existam:
az vmss create \
--resource-group myResourceGroup \
--name myScaleSet \
--image Ubuntu2204 \
--orchestration-mode Flexible \
--admin-username azureuser \
--generate-ssh-keys
A criação e configuração de todas as VMs e recursos do conjunto de dimensionamento demora alguns minutos.
Aplicar a Extensão de Script Personalizado
Aplique a configuração de Extensão de Script Personalizado às instâncias de VM no seu conjunto de dimensionamento com az vmss extension set. O exemplo seguinte aplica a configuração customConfig.json às instâncias de VM myScaleSet no grupo de recursos com o nome myResourceGroup:
az vmss extension set \
--publisher Microsoft.Azure.Extensions \
--version 2.0 \
--name CustomScript \
--resource-group myResourceGroup \
--vmss-name myScaleSet \
--settings customConfig.json
Atenção
Os nomes de arquivo diferenciam maiúsculas de minúsculas. Use o nome exato do arquivo indicado nestas instruções para evitar falhas.
Aplicar a extensão às instâncias do conjunto de escala existente
Atualize todas as instâncias para aplicar o script personalizado. A atualização pode levar alguns minutos.
az vmss update-instances --resource-group myResourceGroup --name myScaleSet --instance-ids "*"
Permitir tráfego para a porta 80
Para permitir que o tráfego flua através do balanceador de carga para as máquinas virtuais, o grupo de segurança de rede padrão precisa ser atualizado.
az network nsg rule create --name AllowHTTP --resource-group myResourceGroup --nsg-name myScaleSetNSG --access Allow --priority 1010 --destination-port-ranges 80
Testar o seu conjunto de dimensionamento
Para ver o seu servidor Web em ação, obtenha o endereço IP público do seu balanceador de carga com az network public-ip show. O exemplo seguinte obtém o endereço IP para myScaleSetLBPublicIP criada como parte do conjunto de dimensionamento:
az network public-ip show \
--resource-group myResourceGroup \
--name myScaleSetLBPublicIP \
--query [ipAddress] \
--output tsv
Introduza o endereço IP público do balanceador de carga num browser. O balanceador de carga distribui o tráfego para uma das suas instâncias de VM, conforme mostra o exemplo seguinte:
Deixe o seu browser aberto para que possa ver uma versão atualizada no próximo passo.
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.
az vmss update \
--name myScaleSet \
--resource-group myResourceGroup \
--set upgradePolicy.mode=automatic
Atualizar a implementação da aplicação
Na shell atual, crie um ficheiro com o nome customConfigv2.json e cole a seguinte configuração. Esta definição executa uma versão v2 atualizada do script de instalação de aplicações:
{
"fileUris": ["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate_nginx_v2.sh"],
"commandToExecute": "./automate_nginx_v2.sh"
}
Aplique a configuração da Extensão de Script Personalizada ao conjunto de escala novamente com o conjunto de extensões az vmss. O customConfigv2.json é utilizado para aplicar a versão atualizada da aplicação:
az vmss extension set \
--publisher Microsoft.Azure.Extensions \
--version 2.0 \
--name CustomScript \
--resource-group myResourceGroup \
--vmss-name myScaleSet \
--settings @customConfigv2.json
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.
Clean up resources (Limpar recursos)
Para remover o seu conjunto de dimensionamento e recursos adicionais, elimine o grupo de recursos e todos os respetivos recursos com az group delete. O parâmetro --no-wait
devolve o controlo à linha de comandos, sem aguardar a conclusão da operação. O parâmetro --yes
confirma que pretende eliminar os recursos sem uma linha de comandos adicional para fazê-lo.
az group delete --name myResourceGroup --no-wait --yes
Próximos passos
Neste tutorial, aprendeu a instalar e atualizar automaticamente aplicações no seu conjunto de dimensionamento com a CLI do Azure:
- Instalar automaticamente aplicações no seu conjunto de dimensionamento
- Utilizar a Extensão de Script Personalizado do Azure
- Atualizar uma aplicação em execução num conjunto de dimensionamento
Prossiga para o próximo tutorial para saber como dimensionar automaticamente o seu conjunto de dimensionamento.