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 conta do Azure, crie uma conta gratuita antes de começar.
Pré-requisitos
Utilize o ambiente Bash no Azure Cloud Shell. Para mais informações, veja Get started with Azure Cloud Shell.
Se preferir executar comandos de referência da CLI localmente, instale o CLI do Azure. Se estiver a usar Windows ou macOS, considere executar o Azure CLI num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.
Se você estiver usando uma instalação local, entre na CLI do Azure usando o comando az login . Para concluir o processo de autenticação, siga os passos exibidos no seu terminal. Para outras opções de entrada, consulte Autenticar no Azure usando a CLI do Azure.
Quando solicitado, instale a extensão do Azure CLI na primeira utilização. Para obter mais informações sobre extensões, consulte Usar e gerenciar extensões com a CLI do Azure.
Execute az version para descobrir a versão e as bibliotecas dependentes que estão instaladas. Para atualizar para a versão mais recente, execute 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 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 de Script Personalizado integra-se com 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 personalizada.
Para usar a Extensão de Script Personalizada com a CLI do Azure, crie um arquivo JSON que define quais arquivos obter e comandos executar. Essas definições JSON podem ser reutilizadas em implantações de conjunto de escala para aplicar instalações consistentes de aplicativos.
Criar definição de extensão de script personalizada
Para ver a Extensão de Script Personalizada em ação, vamos criar um conjunto de dimensionamento que instala o servidor web NGINX e apresenta o hostname da instância de VM do conjunto de dimensionamento. A seguinte definição de Extensão de Script Personalizada baixa um script de exemplo do GitHub, instala os pacotes necessários e grava o nome de host da instância da VM em uma página HTML básica.
No shell atual, crie um arquivo chamado customConfig.json e cole a seguinte configuração. Por exemplo, crie o arquivo no Cloud Shell e não em sua máquina local. Você pode usar 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'
}
Observação
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 escalas
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 a seguir cria um conjunto de escala chamado myScaleSet e gera 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
Demora alguns minutos para criar e configurar todos os recursos do conjunto de dimensionamento e as VMs.
Aplicar a extensão de script personalizada
Aplique a configuração de Extensão de Script Personalizada às instâncias de VM em seu conjunto de dimensionamento com o conjunto de extensões az vmss. O exemplo a seguir aplica a configuração customConfig.json às instâncias de VM myScaleSet no grupo de recursos chamado 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 são sensíveis a maiúsculas e 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
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 az network public-ip show. O exemplo a seguir obtém o endereço IP para myScaleSetLBPublicIP criado como parte do conjunto de escalas:
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 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 implantação do aplicativo
No shell atual, crie um arquivo chamado customConfigv2.json e cole a seguinte configuração. Esta 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 da Extensão de Script Personalizada novamente ao seu conjunto de escalas 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 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.
Limpeza de recursos
Para remover o seu conjunto de escala e recursos adicionais, elimine o grupo de recursos e todos os seus 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 --yes parâmetro confirma que você deseja excluir os recursos sem um prompt adicional para fazê-lo.
az group delete --name myResourceGroup --no-wait --yes
Próximos passos
Neste tutorial, você aprendeu como instalar e atualizar automaticamente aplicativos em seu conjunto de escala com a CLI do Azure:
- 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.