如何摆脱cloud-init?


20

我将Ubuntu 14.04映像用作流浪汉的基本框。不幸的是,此基本框包含cloud-init,这会在启动计算机时导致许多问题:https : //github.com/mitchellh/vagrant/issues/3860

我没有在云中使用我的机器,所以我真的不需要这个。我虽然输入:

sudo apt-get remove cloud-init

可以解决我的问题,但是机器仍然会花费大约3分钟的启动时间来尝试配置不需要的东西。

我可以看到有在AA号码的云初始化相关的文件/etc/init(例如cloud-init.confcloud-final.confcloud-config.conf等)。我可以删除它们,但不确定是否安全。

我还安装rcconf了检查所有starup脚本的程序,但在那里找不到与cloud-init相关的任何内容。有任何想法吗?

Answers:


12

根据cloud-init docs,禁用它的方法是:

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

和/或cloud-init=disabled在内核命令行上设置(如果已启用)。


请注意,它不会将其删除。它仍然存在,但是它将在很早的阶段就停止尝试配置内容。请参阅cloudinit.readthedocs.io/en/latest/topics/boot.html
Ludovic Kuty

当然,这就是为什么我说它将禁用它。
Pierz

1
你是对的。我的评论没有用。
Ludovic Kuty

6

在14.04上,您可以使用dpkg-reconfigure通过以下方式禁用cloud-init:

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

或仅用于sudo dpkg-reconfigure cloud-init交互方式。


6

这在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

祝好运。


1
真?更改文件Changig您在两步后删除?似乎您可以跳过第一步。
EnnoGröper

2

Cloud Init可以用来配置网络,并且可以在不同阶段将其停止。在最新版本中,可以通过确保存在以下文件来在第一阶段禁用 Cloud Init:

/etc/cloud/cloud-init.disabled

或稍后确保文件/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg包含以下内容:

network: {config: disabled}

您可以为此使用以下命令:

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

可以在的标题注释中找到此信息/etc/netplan/50-cloud-init.yaml,其部分内容如下:

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

这来自Ubuntu 18.04 LTS中的文件,并且可能也对以后的版本有效。


恕我直言,它仅禁用其网络配置部分。因此,这还不够。
Ludovic Kuty

@LudovicKuty正是cloud-init要做的事情:配置事物。因此,如果您停止尝试进行配置,那么您就可以实现自己的目标,并且足以阻止它进行工作。如果您坚持认为不是,那么请确切说明“足够”。
code_dredd

它可能仍会尝试配置网络以外的其他内容。恕我直言,OP想完全禁用它。请注意,在其他情况下,此粒度可能很有趣。
Ludovic Kuty

@LudovicKuty您的评论以投机性的方式出现(“恕我直言”,“ 可能 ...”等)。除非您可以证明文档有误,并且在被告知不做后仍会继续尝试,否则我认为这样做没有太多作用,在这种情况下,最好向他们报告错误。每次在服务器上完成此操作就足够了。
code_dredd

去检查cloudinit.readthedocs.io/en/latest/topics/boot.htmlcloudinit.readthedocs.io/en/latest/topics/network-config.html。您在批评我的“ IMHO”和“ might”,并且在编写“禁用Cloud Init的正确方法是使用此命令”,但是您应该添加“ IMHO”,因为它不是正确的方法。
Ludovic Kuty
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.