Como se livrar do cloud-init?

20

Eu estou usando a imagem Ubuntu 14.04 como minha caixa de base para vagrant. Infelizmente, esta caixa base contém cloud-init, que causa muitos problemas durante a inicialização da máquina: https://github.com/mitchellh/vagrant/issues/3860

Como não estou usando minha máquina na nuvem, não preciso disso. Eu apesar de digitar:

sudo apt-get remove cloud-init

resolverá meus problemas, mas a máquina ainda passará cerca de 3 minutos na inicialização tentando configurar algo que não preciso.

Eu posso ver que há aa número de arquivos relacionados init-nuvem no /etc/init(por exemplo cloud-init.conf, cloud-final.conf, cloud-config.confetc). Eu poderia excluí-los, mas não tenho certeza se isso é seguro.

Também instalei rcconfpara verificar todos os scripts de inicialização, mas não consigo encontrar nada relacionado ao cloud-init lá. Alguma ideia?

mnowotka
fonte

Respostas:

12

De acordo com os documentos do cloud-init, a maneira de desativá-lo é:

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

E / ou definido cloud-init=disabledna linha de comando do kernel, se estiver ativado dessa maneira.

Pierz
fonte
Observe que ele não o remove. Ele ainda está lá, mas vai parar de tentar configurar as coisas muito cedo. Veja cloudinit.readthedocs.io/en/latest/topics/boot.html
Ludovic Kuty
Claro que é por isso que eu disse que iria desativá- lo.
Pierz 13/03
1
Sim você está certo. Meu comentário é inútil.
Ludovic Kuty 14/03
6

No 14.04, você pode usar o dpkg-reconfigure para desativar o cloud-init da seguinte maneira:

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

ou apenas use sudo dpkg-reconfigure cloud-initpara fazer isso de forma interativa.

m1keil
fonte
6

Isso funcionou para mim no 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

Boa sorte.

Lion Gates
fonte
1
Sério? Mudar um arquivo que você exclui duas etapas depois? Parece que você pode pular o primeiro passo.
Enno Gröper 20/02
2

O Cloud Init existe para configurar a rede e pode ser interrompido em diferentes estágios. Nas versões recentes, você pode desativar o Cloud Init no primeiro estágio, certificando-se de que o seguinte arquivo existe:

/etc/cloud/cloud-init.disabled

ou posteriormente, certificando-se de que o arquivo /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg existe com o seguinte conteúdo:

network: {config: disabled}

Você pode usar este comando para isso:

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

Esta informação pode ser encontrada nos comentários do cabeçalho /etc/netplan/50-cloud-init.yaml, que em parte são lidos da seguinte forma:

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

Isso é do arquivo no Ubuntu 18.04 LTS e provavelmente também será válido para versões posteriores.

code_dredd
fonte
IMHO, ele apenas desativa sua parte de configuração de rede. Portanto, não é suficiente.
Ludovic Kuty 13/03
@LudovicKuty Qual é exatamente o que o cloud-init está fazendo: configurar as coisas. Assim, se você parar de tentar configurar as coisas, você alcançou seu objetivo e é suficiente para fazê-lo ficar fora do seu caminho. Se você insistir que não, explique o que exatamente seria "suficiente".
code_dredd 13/03
Ele ainda pode tentar configurar outras coisas além da rede. IMHO o OP queria desativá-lo completamente. Observe que essa granularidade pode ser interessante em outros casos.
Ludovic Kuty 13/03
@LudovicKuty Seus comentários estão aparecendo como especulativos ("IMHO", " pode ...", etc). A menos que você possa mostrar que a documentação está errada e que continua tentando as coisas depois de ser instruída a não fazê-lo, acho que não há muito mais sobre isso e, nesse caso, seria melhor relatar um bug a elas . Isso foi suficiente toda vez que eu fiz isso nos meus servidores.
code_dredd 13/03
Acesse cloudinit.readthedocs.io/en/latest/topics/boot.html vs cloudinit.readthedocs.io/en/latest/topics/network-config.html . Você está criticando meu "IMHO" e "poder" e está escrevendo "a maneira correta de desativar o Cloud Init é com este comando", mas você deve ter adicionado "IMHO", pois não é a maneira correta de fazê-lo.
Ludovic Kuty 13/03