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
Cada instância de VM no conjunto de dimensionamento transfere e executa o script do GitHub. Num exemplo mais complexo, podem ser instalados vários ficheiros e componentes de aplicações. Se o conjunto de dimensionamento for aumentado verticalmente, as novas instâncias de VM aplicam automaticamente a mesma definição da Extensão de Script Personalizado e instalam a aplicação necessária.
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.
Testar o seu conjunto de dimensionamento
Para permitir que o tráfego alcance o servidor Web, crie uma regra de balanceador de carga com az network lb rule create. O exemplo seguinte cria uma regra com o nome myLoadBalancerRuleWeb:
az network lb rule create \
--resource-group myResourceGroup \
--name myLoadBalancerRuleWeb \
--lb-name myScaleSetLB \
--backend-pool-name myScaleSetLBBEPool \
--backend-port 80 \
--frontend-ip-name loadBalancerFrontEnd \
--frontend-port 80 \
--protocol tcp
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.
Atualizar a implementação da aplicação
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, pode referenciar um script de implementação atualizado e, em seguida, voltar a aplicar a extensão ao seu conjunto de dimensionamento. Quando o conjunto de dimensionamento foi criado num passo anterior, o --upgrade-policy-mode
foi definido como automático. Esta definição permite que as instâncias de VM no conjunto de dimensionamento atualizem e apliquem automaticamente a versão mais recente da sua 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 Personalizado às instâncias de VM no seu conjunto de dimensionamento novamente com az vmss extension set. 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
Todas as instâncias de VM no conjunto de dimensionamento são automaticamente atualizadas com a versão mais recente da página Web de exemplo. Para ver a versão atualizada, atualize o site no seu browser:
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.