Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: ✔️ macchine virtuali di Linux ✔️ set di scalabilità flessibili
Questo articolo descrive come usare cloud-init per eseguire uno script Bash esistente in una macchina virtuale o un set di scalabilità di macchine virtuali Linux in fase di provisioning in Azure. Questi script cloud-init vengono eseguiti al primo avvio dopo il provisioning delle risorse da parte di Azure. Per altre informazioni sul funzionamento di cloud-init in modo nativo in Azure e sulle distribuzioni Linux supportate, vedere la panoramica di cloud-init
Eseguire uno script Bash con cloud-init
Con cloud-init non è necessario convertire gli script esistenti in cloud-config, in quanto cloud-init accetta più tipi di input, tra cui uno script Bash.
Se è stata usata l'estensione di Azure di script personalizzati di Linux per eseguire gli script, è possibile eseguire la migrazione degli script in modo da usare cloud-init. Tuttavia, poiché le estensioni di Azure hanno report integrati per avvisare degli errori degli script, una distribuzione di immagini cloud-init NON ha esito negativo se lo script non riesce.
Per visualizzare questa funzionalità in azione, creare un semplice script Bash per i test. Come il file cloud-init #cloud-config
, questo script deve essere locale rispetto alla posizione in cui verranno eseguiti i comandi AzureCLI per il provisioning della macchina virtuale. Per questo esempio, creare il file in Cloud Shell anziché nel computer locale. È possibile usare qualsiasi editor. Assicurarsi che l'intero file cloud-init venga copiato correttamente, in particolare la prima riga.
#!/bin/sh
echo "this has been written via cloud-init" + $(date) >> /tmp/myScript.txt
Prima di distribuire l'immagine, è necessario creare un gruppo di risorse con il comando az group create. Un gruppo di risorse di Azure è un contenitore logico in cui le risorse di Azure vengono distribuite e gestite. L'esempio seguente crea un gruppo di risorse denominato myResourceGroup nella località stati uniti orientali.
az group create --name myResourceGroup --location eastus
Creare ora una macchina virtuale con az vm create e specificare il file script Bash con --custom-data simple_bash.sh
in questo modo:
az vm create \
--resource-group myResourceGroup \
--name vmName \
--image imageCIURN \
--custom-data simple_bash.sh \
--generate-ssh-keys
Nota
Sostituire i valori myResourceGroup, vmNamee imageCIURN di conseguenza. Assicurarsi che sia selezionata un'immagine con Cloud-init.
Verificare che lo script Bash sia stato eseguito
Stabilire una connessione SSH all'indirizzo IP pubblico della VM visualizzata nell'output del comando precedente. Immettere il proprio utente e publicIpAddress come indicato di seguito:
ssh <user>@<publicIpAddress>
Verificare che /tmp/myScript.txt
il file esista e che al suo interno sia presente il testo appropriato.
sudo cat /tmp/myScript
In caso contrario, è possibile verificare la /var/log/cloud-init.log
presenza di altri dettagli. Cercare la voce seguente:
sudo cat /var/log/cloud-init.log
Running config-scripts-user using lock Running command ['/var/lib/cloud/instance/scripts/part-001']
Passaggi successivi
Per altri esempi cloud-init di modifiche di configurazione, vedere i documenti seguenti: