如何摆脱 cloud-init?

如何摆脱 cloud-init?

我使用 Ubuntu 14.04 镜像作为 vagrant 的基础。不幸的是,这个基础框架包含 cloud-init,这在启动机器时会导致很多问题:https://github.com/mitchellh/vagrant/issues/3860

我并没有在云端使用我的机器,所以我其实不需要这个。我输入:

sudo apt-get remove cloud-init

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

我可以看到有许多与 cloud-init 相关的文件/etc/init(例如cloud-init.confcloud-final.conf等等cloud-config.conf)。我可以删除它们,但我不确定这是否安全。

我还安装了rcconf所有启动脚本,但找不到任何与 cloud-init 相关的内容。有什么想法吗?

答案1

一种更简单的方法可能是禁用它 - 根据cloud-init 文档禁用它的方法是:

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

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

答案2

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

祝你好运。

答案3

在 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以交互方式进行操作。

答案4

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 中的文件,可能也适用于更高版本。

相关内容