我如何禁用 cloud-init?

我如何禁用 cloud-init?

我有一个完全配置的实例和一个用于自动缩放组的映像。当从此映像自动缩放新实例时,它会调用 cloud-init。cloud-init 会更改主机名并破坏 fstab。

我想防止 cloud-init 在实例启动时启动。

答案1

在使用 systemd 且具有当前版本 (17.0+) cloud-init 的系统中,上游文档描述了使用以下任一方法禁用 cloud-init 的过程:

  • touch /etc/cloud/cloud-init.disabled
  • 添加cloud-init=disabled到内核命令行。

对于旧版本的 cloud-init (0.7.X),以下信息可能会有用。

您可以通过以下两种方式之一禁用 cloud-init 对 /etc/fstab 的修改。

a.) 通过提供云配置来覆盖默认的“挂载”条目并禁用它们。

mounts:
 - [ephemeral0, null]
 - [swap, null]

b.) 禁用mounts模块运行。具体方法是将其从 'cloud_config_modules' 列表中删除,您将在 中看到该列表/etc/cloud/cloud.cfg

关于主机名,您也可以控制它。如果您只是想阻止 cloud-init 修改 /etc/hostname,那么:

preserve_hostname: true

您可能还对以下内容感兴趣manage_etc_hosts

上述两项均记录在doc/示例/云配置.txt(并安装在/usr/share/doc/cloud-init/examples

不过,我很想知道 cloud-init 是如何破坏 /etc/fstab 的。请使用ubuntu-bug cloud-init实例内部的命令提交错误,并描述您认为它做了什么错误的事情。

答案2

在 Ubuntu 20.04 上,以下步骤可以帮助我禁用和删除 cloud-init:

运行此命令来禁用:

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

重启机器。

运行以下命令来删除:

sudo apt-get purge cloud-init
sudo rm -rf /etc/cloud/; sudo rm -rf /var/lib/cloud/

相关内容