Come sbarazzarsi di cloud-init?


20

Sto usando l'immagine di Ubuntu 14.04 come scatola di base per il vagabondo. Sfortunatamente questo box di base contiene cloud-init che causa molti problemi durante l'avvio della macchina: https://github.com/mitchellh/vagrant/issues/3860

Non sto usando la mia macchina nel cloud, quindi non ne ho davvero bisogno. Ho pensato di scrivere:

sudo apt-get remove cloud-init

risolverà i miei problemi ma la macchina impiega ancora circa 3 minuti all'avvio nel tentativo di configurare qualcosa che non mi serve.

Posso vedere ci aa numero di file correlati cloud-init in /etc/init(ad esempio cloud-init.conf, cloud-final.conf, cloud-config.confecc). Potrei eliminarli ma non sono sicuro che sia sicuro.

Ho anche installato rcconfper controllare tutti gli script di avvio ma non riesco a trovare nulla correlato a cloud-init lì. Qualche idea?

Risposte:


12

Secondo i documenti cloud-init, il modo per disabilitarlo è:

sudo touch /etc/cloud/cloud-init.disabled

E / o impostato cloud-init=disabledsulla riga di comando del kernel se è abilitato in questo modo.


Si noti che non lo rimuove. È ancora lì, ma smetterà di provare a configurare le cose in una fase molto precoce. Vedi cloudinit.readthedocs.io/it/latest/topics/boot.html
Ludovic Kuty il

Certo, è per questo che ho detto che lo avrebbe disabilitato .
Pierz,

1
Si hai ragione. Il mio commento è inutile.
Ludovic Kuty

6

Su 14.04 è possibile utilizzare dpkg-reconfigure per disabilitare cloud-init nel modo seguente:

echo 'datasource_list: [ None ]' | sudo -s tee /etc/cloud/cloud.cfg.d/90_dpkg.cfg
sudo dpkg-reconfigure -f noninteractive cloud-init

o semplicemente usalo sudo dpkg-reconfigure cloud-initper farlo in modo interattivo.


6

Questo ha funzionato per me in Ubuntu Server 18.04.1 LST

  1. $ echo 'datasource_list: [ None ]' | sudo -s tee /etc/cloud/cloud.cfg.d/90_dpkg.cfg

  2. $ sudo apt-get purge cloud-init

  3. $ sudo rm -rf /etc/cloud/; sudo rm -rf /var/lib/cloud/

  4. $ reboot

In bocca al lupo.


1
Veramente? Vuoi modificare un file che elimini due passaggi dopo? Sembra che tu possa saltare il primo passo.
Enno Gröper,

2

Cloud Init è lì per configurare la rete e può essere arrestato in diverse fasi. Nelle versioni recenti, è possibile disabilitare Cloud Init nella prima fase assicurandosi che esista il seguente file:

/etc/cloud/cloud-init.disabled

o in una fase successiva assicurandosi che il file /etc/cloud/cloud.cfg.d/99-disable-network-config.cfgesista con il seguente contenuto:

network: {config: disabled}

Puoi usare questo comando per questo:

$ sudo echo "network: {config: disabled}" > /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

Queste informazioni sono disponibili nei commenti di intestazione di /etc/netplan/50-cloud-init.yaml, che in parte leggono come segue:

# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}

Questo proviene dal file in Ubuntu 18.04 LTS e probabilmente sarà valido anche per le versioni successive.


IMHO, disabilita solo la sua parte di configurazione di rete. Quindi non è abbastanza.
Ludovic Kuty il

@LudovicKuty È proprio quello che cloud-init deve fare: configurare le cose. Quindi, se riesci a smettere di provare a configurare le cose, hai raggiunto il tuo obiettivo ed è abbastanza per farlo stare lontano dalla tua strada. Se insisti che non lo sia, spiega per favore che cosa "abbastanza" sarebbe esattamente.
code_dredd

Potrebbe ancora tentare di configurare altre cose oltre alla rete. IMHO l'OP voleva disabilitarlo completamente. Si noti che questa granularità potrebbe essere interessante in altri casi.
Ludovic Kuty il

@LudovicKuty I tuoi commenti vengono considerati speculativi ("IMHO", " potrebbe ...", ecc.). A meno che tu non possa dimostrare che la documentazione è sbagliata e che continua a provare cose dopo che gli è stato detto di non farlo, non penso che ci sia molto altro in questo, e in quel caso, faresti meglio a segnalare loro un bug . Questo è stato sufficiente ogni volta che l'ho fatto nei miei server.
code_dredd

Vai a cloudinit.readthedocs.io/en/latest/topics/boot.html vs cloudinit.readthedocs.io/en/latest/topics/network-config.html . Stai criticando il mio "IMHO" e "might" e stai scrivendo "il modo corretto di disabilitare Cloud Init è con questo comando" ma avresti dovuto aggiungere "IMHO" poiché non è il modo corretto di farlo.
Ludovic Kuty il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.