Cloud-init è uno Software Package essenziale per l’automazione delle istanze Cloud, semplificando di molto il lavoro dei Sysadmin, in quei contesti dove la crescente complessità può diventare difficile da governare.
Nell’era del Cloud, le distribuzioni GNU Linux si adattano e si evolvono per soddisfare costantemente le nuove esigenze dettate dai rapidi cambiamenti del mondo IT. In taluni particolari ambienti, come ad esempio nel Data Center, l’esigenza di creare, modificare e modellare macchine virtuali può rivelarsi un lavoro ripetitivo oltre che estremamente gravoso.
Cloud-init è senza dubbio uno strumento molto utile in un’architettura Cloud; di converso, può diventare fastidioso e talvolta dannoso, oltre che inutile, nei server stand-alone. Rimuovere questo Software Package da un server è un’operazione semplice che può essere eseguita in poco tempo e con pochi semplici passaggi.
Questo breve How To descrive la procedura per disabilitare e rimuovere dal sistema cloud-init per un sistema GNU Linux. Questa procedura, utilizzata per gli esempi, è stata eseguita su un sistema Ubuntu 20.04 LTS; tuttavia, essa è molto simile anche anche per le distribuzioni basare su Red Hat, come ad esempio CentOS o Fedora.
Che cos’è cloud-init ?
Questo Software Package è il metodo multi-distribuzione standard per l’inizializzazione di istanze cloud multi-piattaforma. Esso è, ad oggi, supportato da quasi tutti i principali provider di cloud pubblico, sistemi di provisioning per infrastrutture cloud private e installazioni bare-metal.
Le immagini cloud di un sistema sono modelli del sistema operativo e ogni istanza viene in realtà inizializzata come un clone identico di ogni altra istanza. Sono i dati utente che conferiscono a ogni istanza cloud la sua specifica identità; cloud-init è lo strumento che applica automaticamente i dati utente alle istanze di sistema.
![architettura cloud-init](https://www.diprimio.com/wp-content/uploads/2022/04/architettura-cloud-init.png)
All’avvio dell’istanza, cloud-init è in grado di identificare il Cloud all’interno del quale è in esecuzione; ciò significa che è in grado di “leggere” tutti i metadati forniti dal cloud ed inizializzare il sistema di conseguenza. Ciò comporta, tra l’altro, le seguenti principali configurazioni di sistema:
- Porte di rete, con l’assegnazione degli indirizzi IP, del Gateway, del DNS e di tutti gli aspetti correlati,
- Dispositivi di archiviazione,
- Nome host (
hostname
) del sistema - Impostazione della sincronizzazione di data, ora, fuso orario ed ora-legale
- Chiavi di accesso SSH del sistema
- Predispone l’autorizzazione di accesso tramite SSH per l’accesso da remoto
Successivamente, cloud-init analizza ed elabora tutti i dati facoltativi di utenti o provider del cloud passati all’istanza.
Perché rimuovere cloud-init ?
Cloud-init, seppur molto utile in ambiente Cloud, non è espressamente richiesto per una installazione in cui non sono necessarie le sue peculiari caratteristiche di inizializzare il sistema appunto per il Cloud; oppure semplicemente perché il sistema che si sta installando non ha una connettività Internet.
Va detto che cloud-init influisce molto sui i tempi di avvio al boot del sistema per effetto dell’enorme quantità di task che controlla. Inoltre, alcuni Sysadmin non amano particolarmente la confusione generata dai numerosi messaggi di warning che cloud-init scrive sul terminale, quando ci si collega di sistema.
Per coloro che esigono disporre di un sistema “pulito” che si avvii molto velocemente, senza significative perdite di tempo al boot e che non necessitano dei servizi di supporto al cloud, è consigliato rimuovere cloud-init dal sistema.
Passi per rimuovere cloud-init
Questa sezione descrive in dettaglio i passaggi da effettuare per rimuovere completamente questo Software Package dal sistema.
In estrema sintesi, i passaggi da effettuare sono:
- Disabilitare l’avvio di cloud init al boot
- Disabilitare i servizi controllati da cloud-init
- Rimozione del pacchetto di cloud-init
- Riavvio (finale) del sistema
Entriamo ora nel dettaglio per descrivere punto per punto la procedura di rimozione di cloud-init.
Passo 1. Disabilitare l’avvio di cloud init al boot
In questo passaggio, viene disabilitato l’avvio di cloud-init ad ogni avvio del sistema operativo.
A rigor di logica, si può eseguire questo passo in due modi differenti che avranno comunque lo stesso effetto:
- Tramite la creazione di un file specifico
- Tramite Grub Bootloader
Metodo 1 – Disabilitare cloud-init da file
In questo caso, è necessario creare semplicemente un file vuoto per prevenire l’avvio del servizio al prossimo Boot.
Il file da creare è: /etc/cloud/cloud-init.disabled
.
sudo touch /etc/cloud/cloud-init.disabled
La semplice presenza di questo file previene l’avvio del servizio al prossimo reboot
del sistema.
Metodo 2 – Disabilitare cloud-init da grub bootloader
Per fare questo, è necessario modificare il contenuto del file /etc/default/grub
alla linea che contiene il parametro GRUB_CMDLINE_LINUX
indicando cloud-init=disabled
, come mostrato nell’esempio qui sotto.
# If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. # For full documentation of the options in this file, see: # info -f grub -n 'Simple configuration' GRUB_DEFAULT=0 GRUB_TIMEOUT_STYLE=hidden GRUB_TIMEOUT=0 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="" GRUB_CMDLINE_LINUX="cloud-init=disabled"
Successivamente, aggiornare grub
per rendere effettive le modifiche:
update-grub
Passo 2. Disabilitare i servizi controllati da cloud-init
Le impostazioni Cloud gestite da cloud-init vanno disabilitate; tutte, tranne il servizio None
. Queste impostazioni possono essere riconfigurate con il comando seguente
sudo dpkg-reconfigure cloud-init
All’avvio del comando, la finestra terminale mostrerà la lunga lista dei voci da riconfigurare. Deselezionare tutte le voci, eccetto None
, come mostrato nell’immagine seguente:
![Riconfigurazione cloud-init](https://www.diprimio.com/wp-content/uploads/2022/04/configurazione-servizi-cloud-init.png)
Selezionare OK per completare la configurazione.
Fatto questo si può riavviare il sistema per applicare la nuova configurazione.
sudo reboot
Notare che al riavvio non appariranno più quei fastidiosi messaggi di warning emessi da cloud-init, che prima riempivano il terminale in modo disordinato e confuso.
Passo 3. Rimozione pacchetto cloud-init
Considerando che ora cloud-init non è più in esecuzione, si può tranquillamente procedere con la rimozione del pacchetto dal sistema:
sudo apt-get purge cloud-init
Notare che la rimozione (purge) del pacchetto, non rimuove completamente il contenuto della cartella principale /etc/cloud
, che per sicurezza va quindi eliminato manualmente:
sudo rm -rf /etc/cloud/ && sudo rm -rf /var/lib/cloud/
Passo 4. Riavvio del sistema (opzionale)
A questo punto può essere utile riavviare un’ultima volta il sistema, in modo che tutto l’ambiente sia perfettamente pulito e coerente.
sudo reboot
Il sistema è ora pronto per poter operare al di fuori dal cloud.
Conclusioni
Il pacchetto cloud-init è molto utile nell’installazione di un sistema da zero; tuttavia non sempre potremmo avere la necessità di mantenere tale servizio attivo.
Non sempre cioè il server che stiamo installando potrebbe appartenere al Cloud; pertanto, può essere opportuno rimuovere tale pacchetto e le configurazioni associate.
Condividi
Disclaimer
Questa pagina potrebbe contenere link di affiliazione. Gli acquisti o gli ordini che effettuerai tramite tali link possono generare commissioni che ci aiutano a sostenere questo sito web.