如何禁用云初始化?

hom*_*omm 15 cloud-init

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

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

smo*_*ser 16

在使用 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]
Run Code Online (Sandbox Code Playgroud)

b.) 通过禁用mounts模块运行。这是通过从 'cloud_config_modules' 列表中删除它来完成的,您将在/etc/cloud/cloud.cfg.

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

preserve_hostname: true
Run Code Online (Sandbox Code Playgroud)

你可能也很感兴趣manage_etc_hosts

这两个都记录在doc/examples/cloud-config.txt(并安装在/usr/share/doc/cloud-init/examples

不过,我很想知道 cloud-init 如何破坏 /etc/fstab。请使用ubuntu-bug cloud-init从您的实例内部提交错误,并描述您认为错误的操作。


Art*_*ild 7

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

运行此命令以禁用:

sudo touch /etc/cloud/cloud-init.disabled
Run Code Online (Sandbox Code Playgroud)

重新启动机器。

运行以下命令来删除:

sudo apt-get purge cloud-init
sudo rm -rf /etc/cloud/; sudo rm -rf /var/lib/cloud/
Run Code Online (Sandbox Code Playgroud)

  • 是的,这将禁用它,但不会删除。以下命令也将其删除。 (2认同)