我使用 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.conf
,cloud-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 中对我有用
$ echo 'datasource_list: [ None ]' | sudo -s tee /etc/cloud/cloud.cfg.d/90_dpkg.cfg
$ sudo apt-get purge cloud-init
$ sudo rm -rf /etc/cloud/; sudo rm -rf /var/lib/cloud/
$ 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 中的文件,可能也适用于更高版本。