¿Cómo deshacerse de cloud-init?

20

Estoy usando la imagen de Ubuntu 14.04 como mi caja base para vagabundo. Desafortunadamente, este cuadro base contiene cloud-init que causa muchos problemas durante el arranque de la máquina: https://github.com/mitchellh/vagrant/issues/3860

No estoy usando mi máquina en la nube, así que realmente no necesito esto. Pensé escribiendo:

sudo apt-get remove cloud-init

resolverá mis problemas, pero la máquina todavía pasa unos 3 minutos en el inicio tratando de configurar algo que no necesito.

Puedo ver que hay aa número de archivos relacionados init en la nube en /etc/init(por ejemplo cloud-init.conf, cloud-final.conf, cloud-config.confetc). Podría eliminarlos, pero no estoy seguro de si esto es seguro.

También he instalado rcconfpara verificar todos los scripts de starup pero no puedo encontrar nada relacionado con cloud-init allí. ¿Algunas ideas?

mnowotka
fuente

Respuestas:

12

De acuerdo con los documentos de cloud-init, la forma de deshabilitarlo es:

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

Y / o establecer cloud-init=disableden la línea de comando del núcleo si está habilitado de esa manera.

Pierz
fuente
Tenga en cuenta que no lo elimina. Todavía está allí, pero dejará de intentar configurar cosas en una etapa muy temprana. Ver cloudinit.readthedocs.io/en/latest/topics/boot.html
Ludovic Kuty
Claro que por eso dije que lo deshabilitaría .
Pierz
1
Sí, tiene usted razón. Mi comentario es inútil.
Ludovic Kuty
6

El 14.04 puede usar dpkg-reconfigure para deshabilitar cloud-init de la siguiente manera:

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

o simplemente utilízalo sudo dpkg-reconfigure cloud-initinteractivamente.

m1keil
fuente
6

Esto funcionó para mí en 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

Buena suerte.

Puertas del león
fuente
1
De Verdad? Changig un archivo que eliminas dos pasos más tarde? Parece que puedes saltarte el primer paso.
Enno Gröper
2

Cloud Init está ahí para configurar las redes y se puede detener en diferentes etapas. En versiones recientes, puedes deshabilitar Cloud Init en la primera etapa asegurándose de que exista el siguiente archivo:

/etc/cloud/cloud-init.disabled

o en una etapa posterior asegurándose de que el archivo /etc/cloud/cloud.cfg.d/99-disable-network-config.cfgexiste con el siguiente contenido:

network: {config: disabled}

Puede usar este comando para ello:

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

Esta información se puede encontrar en los comentarios del encabezado de /etc/netplan/50-cloud-init.yaml, que en parte se lee de la siguiente manera:

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

Esto es del archivo en Ubuntu 18.04 LTS y es probable que también sea válido para versiones posteriores.

code_dredd
fuente
En mi humilde opinión, solo deshabilita su parte de configuración de red. Por lo tanto, no es suficiente.
Ludovic Kuty
@LudovicKuty Que es precisamente lo que Cloud-init debe hacer: configurar las cosas. Por lo tanto, si logra que deje de intentar configurar las cosas, ha logrado su objetivo y es suficiente para que se mantenga fuera de su camino. Si insiste en que no lo es, explique qué "suficiente" sería exactamente.
code_dredd
Es posible que aún intente configurar otras cosas que no sean redes. En mi humilde opinión, el OP quería deshabilitarlo por completo. Tenga en cuenta que esta granularidad puede ser interesante en otros casos.
Ludovic Kuty
@LudovicKuty Tus comentarios son especulativos ("En mi humilde opinión", " podría ...", etc.). A menos que pueda demostrar que la documentación es incorrecta y que continúa intentando cosas después de que se le haya dicho que no lo haga, no creo que haya mucho más en esto, y en ese caso, sería mejor informarles un error . Esto ha sido suficiente cada vez que lo he hecho en mis servidores.
code_dredd
Verifique cloudinit.readthedocs.io/en/latest/topics/boot.html vs cloudinit.readthedocs.io/en/latest/topics/network-config.html . Estás criticando mi "IMHO" y "might" y estás escribiendo "la forma correcta de deshabilitar Cloud Init es con este comando" pero deberías haber agregado "IMHO" ya que no es la forma correcta de hacerlo.
Ludovic Kuty