Tutorial: instalar aplicativos em Conjuntos de Dimensionamento de Máquinas Virtuais com a CLI do Azure
Para executar aplicativos em instâncias de VM (máquina virtual) em um conjunto de dimensionamento, primeiro é necessário instalar os componentes de aplicativo e os arquivos necessários. Em um tutorial anterior, você aprendeu a criar e usar uma imagem de VM personalizada para implantar suas instâncias de VM. Essa imagem personalizada incluía instalações manuais de aplicativos e configurações. Você também pode automatizar a instalação de aplicativos para um conjunto de dimensionamento após a implantação de cada instância de VM ou atualizar um aplicativo que já é executado em um conjunto de dimensionamento. Neste tutorial, você aprenderá a:
- Instalar automaticamente os aplicativos para o conjunto de dimensionamento
- Use a Extensão de Script Personalizado do Azure
- Atualizar um aplicativo em execução em um conjunto de dimensionamento
Caso você não tenha uma assinatura 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, confira Início Rápido para Bash no Azure Cloud Shell.
Se preferir executar os comandos de referência da CLI localmente, instale a CLI do Azure. Para execuções no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para obter mais informações, confira Como executar a CLI do Azure em um contêiner do Docker.
Se estiver usando uma instalação local, entre com a CLI do Azure usando o comando az login. Para concluir o processo de autenticação, siga as etapas exibidas no terminal. Para ver outras opções de entrada, confira Conectar-se com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, confira Usar extensões com a CLI do Azure.
Execute az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para fazer a atualização para a versão mais recente, execute az upgrade.
- Este artigo exige a versão 2.0.29 ou posterior da CLI do Azure. Se você está 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 baixa e executa scripts em VMs do Azure. Essa extensão é útil para a configuração de implantação de postagem, instalação de software ou qualquer outra configuração/tarefa de gerenciamento. Os scripts podem ser baixados do armazenamento do Azure ou do GitHub, ou fornecidos ao Portal do Azure no tempo de execução da extensão.
A extensão de script personalizado integra-se aos modelos do Azure Resource Manager e também pode ser usada 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 Personalizado.
Para usar a Extensão de Script Personalizado com a CLI do Azure, você deve criar um arquivo JSON que define quais arquivos para obter e os comandos a serem executados. Essas definições JSON podem ser reutilizadas em implantações de conjunto de dimensionamento para aplicar instalações de aplicativo consistentes.
Criar definição de Extensão de Script Personalizado
Para ver a Extensão de Script Personalizado em ação, crie um conjunto de dimensionamento que instala o servidor Web NGINX e gera o nome do host da instância de VM do conjunto de dimensionamento. A definição de Extensão de Script Personalizado a seguir faz o download de um script de exemplo do GitHub, instala os pacotes necessários e grava o nome de host da instância de VM em uma página HTML básica.
No shell atual, crie um arquivo chamado customConfig.json e cole a configuração a seguir. Por exemplo, crie o arquivo no Cloud Shell e não em seu computador local. Você pode usar qualquer editor que queira. Neste tutorial usaremos Vi. Inserirvi
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'
}
Observação
Talvez seja necessário inverter o uso das aspas simples (') e duplas (") no bloco JSON caso você queira referenciar o JSON diretamente (em vez de referenciar o arquivo customConfig.json) no parâmetro --settings abaixo.
Criar um conjunto de escala
Importante
A partir de novembro de 2023, os conjuntos de dimensionamento de VM criados usando o PowerShell e a CLI do Azure serão padrão para 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 executar, acesse Alteração Interruptiva para Clientes PowerShell/CLI de VMSS – Hub de Comunidade da Microsoft
Crie um grupo de recursos com az group create. O exemplo a seguir cria um grupo de recursos chamado myResourceGroup na localização eastus:
az group create --name myResourceGroup --location eastus
Crie um Conjunto de Dimensionamento de Máquinas Virtuais com az vmss create. O exemplo a seguir criará um conjunto de dimensionamento chamado myScaleSet e gerará chaves SSH se elas não existirem:
az vmss create \
--resource-group myResourceGroup \
--name myScaleSet \
--image Ubuntu2204 \
--orchestration-mode Flexible \
--admin-username azureuser \
--generate-ssh-keys
Leva alguns minutos para criar e configurar todos os recursos e as VMs do conjunto de dimensionamento.
Aplicar a Extensão de Script Personalizado
Aplique a Configuração de Extensão de Script personalizado às instâncias de VM no conjunto de dimensionamento com az vmss extension set. O exemplo a seguir aplica a configuração customConfig.json às instâncias de VM de myScaleSet no grupo de recursos denominado myResourceGroup:
az vmss extension set \
--publisher Microsoft.Azure.Extensions \
--version 2.0 \
--name CustomScript \
--resource-group myResourceGroup \
--vmss-name myScaleSet \
--settings customConfig.json
Cuidado
Os nomes de arquivos 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 existentes do conjunto de dimensionamento
Atualizar 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 pelo 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 seu conjunto de dimensionamento
Para ver seu servidor Web em ação, obtenha o endereço IP público de seu balanceador de carga com az network public-ip show. O seguinte exemplo obtém o endereço IP de myScaleSetLBPublicIP, criado como parte do conjunto de dimensionamento:
az network public-ip show \
--resource-group myResourceGroup \
--name myScaleSetLBPublicIP \
--query [ipAddress] \
--output tsv
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 dimensionamento, era necessária uma atualização manual. Para permitir que as atualizações sejam aplicadas automaticamente a todas as instâncias existentes do conjunto de dimensionamento, atualize a política de atualização de manual para automática. Para obter mais informações sobre as 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 implantação do aplicativo
No shell atual, crie um arquivo chamado customConfigv2.json e cole a configuração a seguir. Essa definição executa uma versão v2 atualizada do script de instalação do aplicativo:
{
"fileUris": ["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate_nginx_v2.sh"],
"commandToExecute": "./automate_nginx_v2.sh"
}
Aplique a configuração de Extensão de script personalizado ao conjunto de dimensionamento novamente com az vmss extension set. O customConfigv2.json é usado para aplicar a versão atualizada do aplicativo:
az vmss extension set \
--publisher Microsoft.Azure.Extensions \
--version 2.0 \
--name CustomScript \
--resource-group myResourceGroup \
--vmss-name myScaleSet \
--settings @customConfigv2.json
Como agora o conjunto de dimensionamento está usando uma política de atualização automática, o aplicativo atualizado será aplicado automaticamente às instâncias do conjunto de dimensionamento existentes. Atualize o navegador da Web para exibir o aplicativo atualizado.
Limpar os recursos
Para remover o conjunto de dimensionamento e outros recursos, exclua o grupo de recursos e todos os seus recursos com az group delete. O parâmetro --no-wait
retorna o controle ao prompt sem aguardar a conclusão da operação. O parâmetro --yes
confirma que você deseja excluir os recursos sem um prompt adicional para fazer isso.
az group delete --name myResourceGroup --no-wait --yes
Próximas etapas
Neste tutorial você aprendeu a instalar e atualizar aplicativos automaticamente em seu conjunto de dimensionamento com a CLI do Azure:
- Instalar automaticamente os aplicativos para o conjunto de dimensionamento
- Use a Extensão de Script Personalizado do Azure
- Atualizar um aplicativo em execução em um conjunto de dimensionamento
Avance para o próximo tutorial para aprender a dimensionar automaticamente seu conjunto de dimensionamento.