-
Cos'è Cloud-Init?
-
Come funziona Cloud-Init
-
Come creare un modello di macchina virtuale utilizzando Cloud-Init?
-
Backup Proxmox VM con la soluzione Vinchin
-
Domande frequenti su Proxmox Cloud-init
-
Riepilogo
In un ambiente virtualizzato, l'automazione della configurazione delle macchine virtuali è fondamentale per migliorare l'efficienza. Proxmox VE è una popolare piattaforma di virtualizzazione open source, mentre Cloud-Init è uno strumento utilizzato per inizializzare le istanze cloud. Combinando PVE e Cloud-Init, possiamo creare e configurare rapidamente immagini di macchine virtuali. Questo articolo spiega in dettaglio come utilizzare Cloud-Init su PVE per creare le proprie immagini.
Cos'è Cloud-Init?
Cloud-Init è un insieme di strumenti standard del settore volti a uniformare il processo di inizializzazione e installazione tra diverse distribuzioni di sistemi operativi sui server cloud. Cloud-Init viene eseguito all'interno della macchina guest e applica configurazioni personalizzate all'avvio. Immagina di essere un fornitore di servizi cloud che deve inizializzare migliaia di VM ogni giorno per i clienti, magari usando sistemi operativi diversi, assegnando vari indirizzi IP, chiavi SSH, nomi host, ecc., in base alle esigenze del cliente. Come gestisci tutto ciò? Cloud-Init è stato creato proprio per risolvere questo problema.
Sviluppato inizialmente da Canonical, l'azienda dietro Ubuntu, Cloud-Init supporta ora la maggior parte delle distribuzioni Linux e i sistemi FreeBSD. Oggi, la maggior parte delle piattaforme cloud pubbliche utilizza Cloud-Init per la configurazione del sistema ed è compatibile anche con alcuni ambienti cloud privati (KVM, OpenStack, LXD, ecc.), diventando così di fatto lo standard.
Questo ci riporta a Proxmox. Poiché Proxmox viene utilizzato per distribuire e gestire macchine virtuali, è naturalmente adatto agli scenari Cloud-Init e può persino essere considerato un componente essenziale.
Quando si richiedono risorse di calcolo su cloud pubblici come AWS o Google Cloud, i fornitori di servizi richiedono tipicamente agli utenti di selezionare un'immagine del sistema e di eseguire alcune configurazioni di base (nome host, chiave SSH, ecc.), quindi creano il sistema in base a queste impostazioni. Cloud-Init è nato in questo contesto per automatizzare l'iniezione dei dati utente nelle istanze del sistema.
L'obiettivo principale di Cloud-Init è definire opzioni di configurazione indipendenti dal sistema operativo, come il nome host, la configurazione di rete, ecc.
Funzionalità di Cloud-Init:
Imposta lingua predefinita
Imposta nome host
Genera e configura chiavi private SSH
Configurare punti di mount temporanei
Come funziona Cloud-Init
Cloud-Init viene eseguito al primo avvio di un'istanza e la configura in base ai metadati e ai dati utente forniti dall'utente. Questi dati sono tipicamente in formato YAML e possono includere quanto segue:
Meta-dati: Descrive le informazioni di base dell'istanza, come l'ID dell'istanza, il nome host, ecc.
Dati utente: Definisce le configurazioni specifiche e gli script da eseguire all'avvio dell'istanza.
Come creare un modello di macchina virtuale utilizzando Cloud-Init?
1. Scarica l'immagine cloud appropriata per il sistema desiderato (Proxmox VE supporta due tipi di immagini cloud: nocloud v1 e configdrive v2). Qui utilizzeremo Debian 11 come esempio. È possibile scaricarla direttamente utilizzando "wget" in PVE oppure scaricarla altrove e quindi caricarla tramite SFTP.
2. Creare una macchina virtuale e assicurarsi che il controller SCSI sia impostato su VirtIO SCSI. Non è necessario creare un disco rigido; in caso contrario, scollegarlo ed eliminarlo.
3. Aggiungi un dispositivo CloudInit nelle impostazioni hardware della VM che hai creato.
4. Usare SSH o strumenti come Xftp per caricare il file immagine sul server PVE (saltare questo passaggio se è stato usato "wget"). Successivamente, utilizzare il seguente comando per importare l'immagine del disco nella macchina virtuale. Al termine dell'importazione, un disco inutilizzato apparirà nella sezione hardware della VM nel pannello PVE.
qm importdisk 900 debian-11-nocloud-amd64.qcow2 local-lvm
5. Fare doppio clic sul disco inutilizzato per abilitarlo, selezionare SCSI come tipo di bus/dispositivo e impostarlo come primo dispositivo di avvio in Options → Boot Order.
6. Modifica le impostazioni di Cloud-Init e compila la configurazione desiderata. Cloud-Init utilizzerà il nome della macchina virtuale come hostname.
Utente: Nel sistema template Debian 11, l'utente predefinito è "debian". Se stai configurando l'accesso per root o altri utenti, inserisci qui il nome utente. Se lasciato vuoto, verrà utilizzato l'utente predefinito.
Password: Inserisci la password per l'utente specificato sopra. Si consiglia di impostare una password qui; in caso contrario, potresti non essere in grado di accedere al sistema tramite la console.
Dominio DNS: È possibile inserire il nome di dominio per la VM. Se lasciato vuoto, eredita il dominio dall'host PVE.
Server DNS: Se la macchina virtuale utilizza un server DNS diverso, inserirlo qui. In caso contrario, eredita le impostazioni DNS dall'host PVE.
Chiave pubblica SSH: La chiave pubblica per l'accesso SSH alla macchina virtuale. Abilita l'accesso SSH basato su chiave.
Configurazione IP: Se lasciato vuoto, la macchina virtuale utilizzerà DHCP per ottenere indirizzi IPv4 e IPv6. È possibile definire qui un indirizzo IP specifico, una maschera di sottorete e un gateway per la macchina virtuale.
7. Ridimensiona il disco e avvia la macchina virtuale. Il primo avvio potrebbe richiedere del tempo. Se sembra bloccato, prova a riavviare.
8. Se la configurazione di Cloud-Init non producesse effetto, accedere alla VM tramite la console PVE ed eseguire “cloud-init -v” per verificare se Cloud-Init è installato. Se non appare alcun output, installarlo utilizzando i seguenti comandi:
# CentOS
yum install cloud-init -y
# Debian
apt install cloud-init -y
9. Quindi, eseguire la configurazione iniziale del sistema Debian. Una volta impostato tutto, fare clic con il pulsante destro del mouse sulla macchina virtuale e salvarla come modello. È quindi possibile utilizzarla per creare rapidamente nuove macchine virtuali.
Backup Proxmox VM con la soluzione Vinchin
Vinchin Backup & Recovery offre una serie completa di funzionalità avanzate per proteggere gli ambienti Proxmox VE, garantendo sicurezza e integrità dei dati rispettando la regola del backup 3-2-1.
Le sue funzionalità includono backup automatizzati delle VM, opzioni di backup senza agenti e senza LAN, nonché copia fuori sede per un ripristino affidabile in caso di disastro. Il ripristino immediato e le tecniche efficienti di riduzione dei dati, insieme alle opzioni di archiviazione nel cloud, migliorano ulteriormente la gestione dei dati. Inoltre, la soluzione incorpora meccanismi di crittografia dei dati e protezione contro i ransomware per un livello di sicurezza aggiuntivo. Consente inoltre una migrazione V2V fluida tra piattaforme virtuali supportate, garantendo flessibilità e semplicità nel trasferimento dei dati.
Sono necessari solo 4 passaggi per eseguire il backup delle VM Proxmox VE:
1. Seleziona l'oggetto del backup.

2. Seleziona la destinazione del backup.

3. Configurare le strategie di backup.

4. Rivedi e invia il lavoro.

Migliaia di aziende in tutto il mondo hanno già adottato Vinchin Backup & Recovery per le loro esigenze di protezione dei dati. Puoi iniziare a esplorarne le vaste funzionalità con una prova completa di 60 giorni, dotata di tutte le funzioni. Contattaci indicando i dettagli della tua configurazione Proxmox VE e riceverai una soluzione personalizzata perfettamente integrata nel tuo ambiente IT.
Domande frequenti su Proxmox Cloud-init
1. Il file hosts /etc/hosts viene reimpostato dopo il riavvio. Come risolvere?
Modifica il contenuto del file /etc/cloud/cloud.cfg e commenta o elimina update_etc_hosts
2. Dove viene archiviata la configurazione di Cloud-Init in Proxmox?
La configurazione generata viene archiviata come immagine simile a un ISO montata sulla macchina virtuale come unità CD-ROM (in genere IDE2 o SATA0). Il file viene generato dalle impostazioni di /etc/pve/nodes/<node>/qemu-server/<vmid>.conf.
Riepilogo
Cloud-Init è uno strumento potente e flessibile che semplifica notevolmente il processo di inizializzazione e configurazione delle istanze cloud. Predefinendo file di configurazione, gli utenti possono automatizzare diverse attività di inizializzazione, migliorando l'efficienza e la coerenza del deployment. Sia negli ambienti cloud pubblici che privati, Cloud-Init è uno strumento di gestione della configurazione indispensabile.
Condividi su: