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
Per altre informazioni su cloud-init o sulla risoluzione dei problemi a livello più approfondito, è necessario comprendere il funzionamento. Questo documento illustra le parti importanti e illustra le specifiche di Azure.
Quando cloud-init è incluso in un'immagine generalizzata e viene creata una macchina virtuale da tale immagine, elabora le configurazioni ed esegue cinque fasi durante l'avvio iniziale. Queste fasi illustrano in quale punto cloud-init applica le relative configurazioni.
Comprendere la configurazione di Cloud-Init
La configurazione di una macchina virtuale da eseguire in una piattaforma usa cloud-init per applicare più configurazioni. Le configurazioni principali con cui si interagisce sono User data
(customData), che supporta più formati. Per altre informazioni, vedere la documentazioneUser-Data Formati e cloud-init 21.2. È anche possibile aggiungere ed eseguire script (/var/lib/cloud/scripts) per altre configurazioni.
Immagini preconfigurate di Azure Marketplace
Alcune configurazioni sono già inserite in immagini di Azure Marketplace fornite con cloud-init.
Origine dati cloud: cloud-init contiene codice che può interagire con le piattaforme cloud, questi codici sono denominati "origini dati". Quando una macchina virtuale viene creata da un'immagine cloud-init in Azure, cloud-init carica l'origine dati di Azure, che interagisce con gli endpoint dei metadati di Azure per ottenere la configurazione specifica della macchina virtuale.
Configurazione di runtime (/run/cloud-init).
Configurazione dell'immagine (/etc/cloud), ad esempio
/etc/cloud/cloud.cfg
,/etc/cloud/cloud.cfg.d/*.cfg
. Un esempio di dove viene utilizzata questa configurazione in Azure riguarda le immagini del sistema operativo Linux con cloud-init; in queste immagini, è comune avere una direttiva datasource di Azure che indica a cloud-init quale origine utilizzare, facendo così risparmiare tempo nell'esecuzione.sudo cat /etc/cloud/cloud.cfg.d/90_dpkg.cfg
# to update this file, run dpkg-reconfigure cloud-init datasource_list: [ Azure ]
Fasi di avvio di Cloud-init (configurazione di elaborazione)
Quando si esegue il provisioning di macchine virtuali con cloud-init, sono disponibili cinque fasi di avvio della configurazione. L'output di queste fasi è visibile nei log.
Fase generatore: il generatore di sistema cloud-init viene avviato e determina che cloud-init deve essere incluso negli obiettivi di avvio e, in tal caso, abilita cloud-init.
Fase locale di Cloud-init: in questo caso cloud-init cerca l'origine dati locale "Azure", che consente a cloud-init di interfacciarsi con Azure e di applicare una configurazione di rete, incluso il fallback.
Cloud-init init Stage (Network): la rete dovrebbe essere online e le informazioni sulla NIC e sulla tabella di routing dovrebbero essere generate. In questa fase vengono eseguiti i moduli elencati in
cloud_init_modules
/etc/cloud/cloud.cfg
. La macchina virtuale in Azure viene montata, il disco temporaneo viene formattato, il nome host viene impostato, insieme ad altre attività.Di seguito sono riportati alcuni degli elementi
cloud_init_modules
seguenti:- migrator - seed_random - bootcmd - write-files - growpart - resizefs - disk_setup - mounts - set_hostname - update_hostname - ssh
Dopo questa fase, cloud-init invia un segnale alla piattaforma Azure che la macchina virtuale è stata fornita correttamente. Alcuni moduli potrebbero non riuscire, ma non tutti gli errori del modulo generano automaticamente un errore di provisioning.
Fase di configurazione di Cloud-init: in questa fase, i moduli in
cloud_config_modules
definiti e elencati in/etc/cloud/cloud
.cfg vengono eseguiti.Fase finale di Cloud-init: in questa fase finale, i moduli in
cloud_final_modules
, elencati in/etc/cloud/cloud.cfg
, vengono eseguiti. In questo caso, i moduli che devono essere eseguiti in ritardo nell'esecuzione del processo di avvio, ad esempio installazioni di pacchetti ed eseguire script e così via.- Durante questa fase, è possibile eseguire script inserendoli nelle directory in
/var/lib/cloud/scripts
:-
per-boot
- script all'interno di questa directory, eseguiti a ogni riavvio -
per-instance
: script all'interno di questa directory vengono eseguiti quando viene avviata una nuova istanza -
per-once
- gli script all'interno di questa directory vengono eseguiti una sola volta
-
- Durante questa fase, è possibile eseguire script inserendoli nelle directory in