我有一个使用 packer 部署的可运行的 cloud-init。一旦启动 VM 并完成自动安装,Ubuntu 就会自动更新。这似乎需要很长时间才能完成,而且这是一个不必要的步骤,因为我们在安装后将其交给 puppet。
目前,我传递了错误的 DNS 详细信息以避免自动更新。
我怎样才能禁用自动更新?
谢谢 !
答案1
您无法禁用它,因此您只能使用巧妙的解决方法。我很想使用cloud-init
修补 subiquity 代码来跳过此步骤。
来自开发者
https://discourse.ubuntu.com/t/please-test-autoinstalls-for-20-04/15250/226
目前还不行。为什么要安装有已知安全漏洞的系统?
您可以通过在安装过程中不配置网络并使用 late-command 将 netplan 转储到位来解决此问题。
编辑
我找到了几种在自动安装结束时有效跳过更新的方法,但我只对 22.04 安装程序进行了测试。我分享了我的方法https://askubuntu.com/a/1410679/376778
答案2
不确定这是否有用,但我在为 Vultr 设置新的 VPS 实例时遇到了类似的问题。Vultr 上 Ubuntu 服务器的默认 cloud.ini 配置在第一次启动时运行“apt-get update && apt-get upgrade”。这给我的安装脚本带来了真正的问题,它无法处理后台发生的升级。因此,我在网上到处寻找在第一次启动我的 VPS 时关闭自动升级的方法(并多次进入此页面),但没有找到任何直接相关的内容。
最终,我发现 cloud.ini 的“用户数据”功能可用于覆盖 cloud.ini 设置默认值,我想我会分享我的经验。
我将用户数据的内容设置为以下内容:
#cloud-config
package_update: false
package_upgrade: false
Vultr 要求将其作为 base64 单行代码传递给 Vultr API,结果如下:
I2Nsb3VkLWNvbmZpZwpwYWNrYWdlX3VwZGF0ZTogZmFsc2UKcGFja2FnZV91cGdyYWRlOiBmYWxzZQ==
这适用于在 Vultr 上设置新的 Ubuntu 20.04 VPS。Vultr 不再在首次启动时自动运行更新或升级(允许我在设置过程中微调如何处理此问题)。对于独立计算机(例如,家里的 Raspberry Pi),以下网站似乎可以解释如何将用户数据文件注入依赖于 ISO 的设置过程: https://www.pugetsystems.com/labs/hpc/How-To-Make-Ubuntu-Autoinstall-ISO-with-Cloud-init-2213/。但是,我本人还没有真正尝试过,因此您的情况可能会有所不同。