Esercitazione: Installare applicazioni in set di scalabilità di macchine virtuali con l'interfaccia della riga di comando di Azure
Per eseguire applicazioni nelle istanze di macchine virtuali (VM) in un set di scalabilità, è necessario prima installare i componenti dell'applicazione e i file necessari. In un'esercitazione precedente si è appreso come usare un'immagine di macchina virtuale personalizzata per distribuire le istanze di macchina virtuale. Questa immagine personalizzata includeva installazioni e configurazioni manuali di applicazioni. È anche possibile automatizzare l'installazione delle applicazioni in un set di scalabilità dopo la distribuzione di ogni istanza di macchina virtuale oppure aggiornare un'applicazione che è già in esecuzione in un set di scalabilità. In questa esercitazione si apprenderà come:
- Installare automaticamente le applicazioni nel set di scalabilità
- Usare l'estensione Script personalizzato di Azure
- Aggiornare un'applicazione in esecuzione in un set di scalabilità
Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.
Prerequisiti
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Avvio rapido su Bash in Azure Cloud Shell.
Se si preferisce eseguire i comandi di riferimento dell'interfaccia della riga di comando in locale, installare l'interfaccia della riga di comando di Azure. Per l'esecuzione in Windows o macOS, è consigliabile eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere all'interfaccia della riga di comando di Azure con il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Accedere tramite l'interfaccia della riga di comando di Azure.
Quando richiesto, al primo utilizzo installare l'estensione dell'interfaccia della riga di comando di Azure. Per altre informazioni sulle estensioni, vedere Usare le estensioni con l'interfaccia della riga di comando di Azure.
Eseguire az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguire az upgrade.
- Questo articolo richiede la versione 2.0.29 dell'interfaccia della riga di comando di Azure. Se si usa Azure Cloud Shell, la versione più recente è già installata.
Informazioni sull'estensione Script personalizzato di Azure
L'estensione script personalizzata scarica ed esegue gli script sulle macchine virtuali di Azure. Questa estensione è utile per la configurazione post-distribuzione, l'installazione di software o qualsiasi altra attività di configurazione o gestione. Gli script possono essere scaricati dall'archiviazione di Azure o da GitHub oppure possono essere forniti al portale di Azure durante il runtime dell'estensione.
L'estensione Script personalizzato si integra nei modelli di Azure Resource Manager e può anche essere usata con l'interfaccia della riga di comando di Azure, Azure PowerShell, il portale di Azure o l'API REST. Per altre informazioni, vedere Panoramica dell'estensione script personalizzata.
Per usare l'estensione dello script personalizzata con l'interfaccia della riga di comando di Azure, creare un file JSON che definisca i file da ottenere e i comandi da eseguire. Queste definizioni JSON possono essere riusate nelle distribuzioni del set di scalabilità per applicare installazioni di applicazioni coerenti.
Creare una definizione di estensione Script personalizzato
Per vedere l'estensione Script personalizzato in azione, creare un set di scalabilità che installa il server Web NGINX e restituisce il nome host dell'istanza di macchina virtuale del set di scalabilità. La seguente definizione dell'estensione Script personalizzato scarica uno script di esempio da GitHub, installa i pacchetti richiesti, quindi scrive il nome host dell'istanza di macchina virtuale in una pagina HTML di base.
Nella shell corrente creare un file denominato customConfig.json e incollare la configurazione seguente. Ad esempio, creare il file in Cloud Shell anziché nel computer locale. È possibile usare qualsiasi editor. Per questa esercitazione verrà usato Vi. Immettere vi
in Cloud Shell. Incollare il codice JSON seguente nell'editor e digitare :w customConfig.json
.
{
"fileUris": ["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate_nginx.sh"],
"commandToExecute": './automate_nginx.sh'
}
Nota
Se si decide di fare riferimento direttamente al codice JSON, invece che al file customConfig.json, può essere necessario invertire l'uso delle virgolette singole (') e doppie (") nel parametro --settings seguente.
Creare un set di scalabilità
Importante
A partire da novembre 2023, i set di scalabilità di macchine virtuali creati con PowerShell e l'interfaccia della riga di comando di Azure avranno per impostazione predefinita la modalità di orchestrazione flessibile se non è specificata alcuna modalità di orchestrazione. Per altre informazioni su questa modifica e sulle azioni da eseguire, vedere Modifica che causa un'interruzione per i clienti di PowerShell/CLI di VMSS - Hub della community Microsoft
Come prima cosa creare un gruppo di risorse con az group create. L'esempio seguente crea un gruppo di risorse denominato myResourceGroup nella posizione eastus:
az group create --name myResourceGroup --location eastus
Si può ora creare un set di scalabilità di macchine virtuali con il comando az vmss create. Nell'esempio seguente viene creato un set di scalabilità denominato myScaleSet e vengono generate le chiavi SSH, se non sono presenti:
az vmss create \
--resource-group myResourceGroup \
--name myScaleSet \
--image Ubuntu2204 \
--orchestration-mode Flexible \
--admin-username azureuser \
--generate-ssh-keys
La creazione e la configurazione di tutte le macchine virtuali e risorse del set di scalabilità richiedono alcuni minuti.
Applicare l'estensione Script personalizzato
Applicare la configurazione dell'estensione dello script personalizzata alle istanze di macchine virtuali nel set di scalabilità con az vmss extension set. Nell'esempio seguente viene applicata la configurazione customConfig.json alle istanze di macchine virtuali myScaleSet nel gruppo di risorse denominato myResourceGroup:
az vmss extension set \
--publisher Microsoft.Azure.Extensions \
--version 2.0 \
--name CustomScript \
--resource-group myResourceGroup \
--vmss-name myScaleSet \
--settings customConfig.json
Attenzione
Per i nomi di file è rilevante la distinzione tra maiuscole e minuscole. Usare il nome di file esatto indicato in queste istruzioni per evitare errori.
Applicare l'estensione alle istanze del set di scalabilità esistenti
Aggiornare tutte le istanze per applicare lo script personalizzato. L'aggiornamento potrebbe richiedere qualche minuto.
az vmss update-instances --resource-group myResourceGroup --name myScaleSet --instance-ids "*"
Consentire il traffico verso la porta 80
Per consentire il flusso del traffico attraverso il servizio di bilanciamento del carico alle macchine virtuali, è necessario aggiornare il gruppo di sicurezza di rete predefinito.
az network nsg rule create --name AllowHTTP --resource-group myResourceGroup --nsg-name myScaleSetNSG --access Allow --priority 1010 --destination-port-ranges 80
Testare il set di scalabilità
Per vedere il server Web in azione, ottenere l'indirizzo IP pubblico del servizio di bilanciamento del carico con az network public-ip show. Nell'esempio seguente si ottiene l'indirizzo IP per myScaleSetLBPublicIP creato come parte del set di scalabilità:
az network public-ip show \
--resource-group myResourceGroup \
--name myScaleSetLBPublicIP \
--query [ipAddress] \
--output tsv
Immettere l'indirizzo IP pubblico del servizio di bilanciamento del carico in un Web browser. Il servizio di bilanciamento del carico distribuisce il traffico a una delle istanze di macchina virtuale, come illustrato nell'esempio seguente:
Lasciare aperto il Web browser per poter visualizzare una versione aggiornata nel passaggio successivo.
Modificare il criteri di aggiornamento
Nella sezione precedente è stato necessario un aggiornamento manuale per applicare l'applicazione aggiornata a tutte le istanze del set di scalabilità. Per consentire l'applicazione automatica degli aggiornamenti a tutte le istanze del set di scalabilità esistenti, aggiornare il criterio di aggiornamento da manuale ad automatico. Per altre informazioni sui criteri di aggiornamento, vedere Criteri di aggiornamento per i set di scalabilità di macchine virtuali.
az vmss update \
--name myScaleSet \
--resource-group myResourceGroup \
--set upgradePolicy.mode=automatic
Aggiornare la distribuzione dell'app
Nella shell corrente creare un file denominato customConfigv2.json e incollare la configurazione seguente. Questa definizione esegue una versione v2 aggiornata dello script di installazione dell'applicazione:
{
"fileUris": ["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate_nginx_v2.sh"],
"commandToExecute": "./automate_nginx_v2.sh"
}
Applicare di nuovo la configurazione dell'estensione Script personalizzato al set di scalabilità con az vmss extension set. Il file customConfigv2.json viene usato per applicare la versione aggiornata dell'applicazione:
az vmss extension set \
--publisher Microsoft.Azure.Extensions \
--version 2.0 \
--name CustomScript \
--resource-group myResourceGroup \
--vmss-name myScaleSet \
--settings @customConfigv2.json
Poiché il set di scalabilità usa ora un criterio di aggiornamento automatico, l'applicazione aggiornata verrà applicata automaticamente alle istanze esistenti del set di scalabilità. Aggiornare il Web browser per visualizzare l'applicazione aggiornata.
Pulire le risorse
Per rimuovere il set di scalabilità e le risorse aggiuntive, eliminare il gruppo di risorse e tutte le relative risorse con az group delete. Il parametro --no-wait
restituisce il controllo al prompt senza attendere il completamento dell'operazione. Il parametro --yes
conferma che si desidera eliminare le risorse senza un prompt aggiuntivo a tale scopo.
az group delete --name myResourceGroup --no-wait --yes
Passaggi successivi
In questa esercitazione si è appreso come installare e aggiornare automaticamente applicazioni nel set di scalabilità con l'interfaccia della riga di comando di Azure:
- Installare automaticamente le applicazioni nel set di scalabilità
- Usare l'estensione Script personalizzato di Azure
- Aggiornare un'applicazione in esecuzione in un set di scalabilità
Passare all'esercitazione successiva per informazioni su come ridimensionare automaticamente il set di scalabilità.