Comment se débarrasser du cloud-init?


20

J'utilise l'image Ubuntu 14.04 comme boîte de base pour vagabond. Malheureusement, cette boîte de base contient cloud-init, ce qui provoque de nombreux problèmes lors du démarrage de la machine: https://github.com/mitchellh/vagrant/issues/3860

Je n'utilise pas ma machine dans le cloud donc je n'en ai pas vraiment besoin. J'ai bien tapé:

sudo apt-get remove cloud-init

va résoudre mes problèmes mais la machine passe encore environ 3 minutes au démarrage à essayer de configurer quelque chose dont je n'ai pas besoin.

Je peux y voir aa nombre de fichiers liés cloud-init dans /etc/init(par exemple cloud-init.conf, cloud-final.conf, cloud-config.confetc.). Je pourrais les supprimer mais je ne suis pas sûr que ce soit sûr.

J'ai également installé rcconfpour vérifier tous les scripts de démarrage, mais je n'y trouve rien de lié à cloud-init. Des idées?

Réponses:


12

Selon les documents cloud-init, la façon de le désactiver est:

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

Et / ou défini cloud-init=disabledsur la ligne de commande du noyau s'il est activé de cette façon.


Notez qu'il ne le supprime pas. Il est toujours là mais il cessera d'essayer de configurer des choses très tôt. Voir cloudinit.readthedocs.io/en/latest/topics/boot.html
Ludovic Kuty

Bien sûr, c'est pourquoi j'ai dit que cela le désactiverait .
Pierz

1
Oui, tu as raison. Mon commentaire est inutile.
Ludovic Kuty

6

Le 14.04, vous pouvez utiliser dpkg-reconfigure pour désactiver cloud-init de la manière suivante:

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

ou utilisez-le simplement sudo dpkg-reconfigure cloud-initpour le faire de manière interactive.


6

Cela a fonctionné pour moi dans 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

Bonne chance.


1
Vraiment? Changer un fichier que vous supprimez deux étapes plus tard? On dirait que vous pouvez sauter la première étape.
Enno Gröper

2

Cloud Init est là pour configurer le réseau et il peut être arrêté à différentes étapes. Dans les versions récentes, vous pouvez désactiver Cloud Init à la première étape en vous assurant que le fichier suivant existe:

/etc/cloud/cloud-init.disabled

ou ultérieurement en vous assurant que le fichier /etc/cloud/cloud.cfg.d/99-disable-network-config.cfgexiste avec le contenu suivant:

network: {config: disabled}

Vous pouvez utiliser cette commande pour cela:

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

Ces informations peuvent être trouvées dans les commentaires d'en-tête de /etc/netplan/50-cloud-init.yaml, qui se lisent en partie comme suit:

# 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}

Cela provient du fichier dans Ubuntu 18.04 LTS et devrait également être valide pour les versions ultérieures.


À mon humble avis, il ne désactive que sa partie de configuration réseau. Ce n'est donc pas suffisant.
Ludovic Kuty

@LudovicKuty C'est précisément ce que le cloud-init est là pour faire: configurer les choses. Ainsi, si vous arrêtez d'essayer de configurer les choses, vous avez atteint votre objectif et il suffit de le garder hors de votre chemin. Si vous insistez pour que ce ne soit pas le cas, veuillez expliquer ce que serait «assez» exactement.
code_dredd

Il pourrait toujours essayer de configurer autre chose que la mise en réseau. À mon humble avis, l'OP voulait le désactiver complètement. Notez que cette granularité peut être intéressante dans d'autres cas.
Ludovic Kuty

@LudovicKuty Vos commentaires semblent être spéculatifs ("IMHO", "il se pourrait ...", etc.). À moins que vous ne puissiez montrer que la documentation est erronée et qu'elle continue d'essayer des choses après qu'on lui a dit de ne pas le faire, je ne pense pas qu'il y ait beaucoup plus à cela, et dans ce cas, vous feriez mieux de leur signaler un bogue . Cela a été suffisant chaque fois que je l'ai fait sur mes serveurs.
code_dredd

Allez voir cloudinit.readthedocs.io/en/latest/topics/boot.html vs cloudinit.readthedocs.io/en/latest/topics/network-config.html . Vous critiquez mon "IMHO" et "pourrait" et vous écrivez "la bonne façon de désactiver Cloud Init est avec cette commande" mais vous auriez dû ajouter "IMHO" car ce n'est pas la bonne façon de le faire.
Ludovic Kuty
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.