Menu Chiudi

Come rimuovere cloud-init da Ubuntu 20.04

Rimuovere cloud-init

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.

Leggi anche:   Come creare un alias per l'interfaccia ethernet di Linux
architettura cloud-init
Rappresentazione schematica di cloud-init

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.

Leggi anche:   Setup di un semplice DNS locale con dnsmasq

In estrema sintesi, i passaggi da effettuare sono:

  1. Disabilitare l’avvio di cloud init al boot
  2. Disabilitare i servizi controllati da cloud-init
  3. Rimozione del pacchetto di cloud-init
  4. 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:

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:

Leggi anche:   Come Fare il Setup di Raspberry Pi 3 con raspi-config
Riconfigurazione cloud-init
Riconfigurazione dei servizi di cloud-init

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.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Moderazione dei commenti attiva. Il tuo commento non apparirà immediatamente.