创建服务器后我是否应该删除 cloud-init

Cru*_*sty 8 server cloud-init

据我了解,cloud-init处理实例的早期初始化cloud/VM。我一直在使用它来帮助构建 KVM 虚拟机,而且效果非常好。

我不明白的一方面cloud-init是,一旦完成实例的初始创建,会发生什么。

  • 它会自动禁用自己,从而不再运行吗?
  • 它可以在某些情况下再次执行吗(例如更改为/etc/machine-id)?我很确定我通过运行强制它在某个时刻重新运行

    sudo rm -rf  /var/lib/cloud/*
    
    Run Code Online (Sandbox Code Playgroud)
  • 它的设计是否使我应该在cloud-init实例构建完成并投入生产后进行卸载,或者cloud-init即使在实例化之后仍然保持安装状态(什么也不做)?

Cru*_*sty 7

令人尴尬的是,我正在寻找的答案在文档中(我发誓我问问题时它不在那里):\n https://cloudinit.readthedocs.io/en/latest/topics/boot.html #首次启动确定

\n
\n

cloud-init 必须确定当前启动是否是新实例的首次启动,以便应用适当的配置。在实例\xe2\x80\x99s 首次启动时,它应运行所有 \xe2\x80\x9cper-instance\xe2\x80\x9d 配置,而在后续启动时,它应仅运行 \xe2\x80\x9cper-boot\ xe2\x80\x9d 配置。

\n
\n

因此,我的问题的答案是,cloud-init根据云/虚拟机实例是首次启动还是随后启动,(可能)行为会有所不同。

\n

此外,cloud-init它不会自行禁用(它只是运行不同的步骤),并且在完成初始化/安装阶段(首次启动)后不需要将其删除。

\n
\n

默认情况下,cloud-init 尝试通过检查缓存中的实例 ID 与它在运行时确定的实例 ID 来确定它正在运行的情况。如果不匹配,则这是实例\xe2\x80\x99s首次启动;否则,它将\xe2\x80\x99作为后续引导。在内部,cloud-init 将此行为称为检查。

\n
\n

因此,更改机器 ID ( /etc/machine-id) 很可能会导致cloud-init重新运行初始化阶段。与删除缓存一样 ( sudo rm -rf /var/lib/cloud/*)

\n