通过自动安装与用户数据安装包

Ale*_*sko 1 user-data cloud-init system-installation 22.04 autoinstall

我已经阅读了整个autoinstall 文档和整个cloud-init 文档,但我仍然不明白在 autoinstall 中安装软件包的能力与通过用户数据部分安装软件包的能力之间明显的重叠/冗余。

我想要的是安装软件包并将它们烘焙到我的映像中。我不想在克隆映像时等待软件包安装。

这篇文章并不是专门针对安装软件包的,但它让我看到了一个事实,即存在“安装环境”和“已安装环境”(或者“目标”是更好的术语吗?)。我认为如果我了解这是如何工作的将会有所帮助。

我认为,同样相关的是,“首次启动”是否发生在自动安装过程中,或者“首次启动”发生在我克隆映像时吗?

自动安装和用户数据之间还有其他冗余......但我认为如果我能更好地理解上述内容将会有所帮助。

作为记录,我使用打包程序在 Proxmox 中创建模板。

And*_*her 5

如果您使用这样的自动安装配置

#cloud-config
autoinstall:
  packages:
  - cowsay
  user-data:
    packages:
    - rolldice
Run Code Online (Sandbox Code Playgroud)

该软件包cowsay将在安装过程中安装。该软件包将在首次启动时由cloud-initrolldice安装。

cowsay如果包的目标是将包“烘焙”到映像中,则应使用 的方法。

该部分中的任何内容都会被cloud-inituser-data使用。您可以看到它被放入已安装的系统中。/etc/cloud/cloud.cfg.d/99-installer.cfg

笔记

  • 我还避免使用该user-data方法,因为cloud-init将在每次启动期间尝试安装或升级软件包。
  • 示例中的包没有任何意义。它们很小、简单且易于测试。
  • 我使用 Ubuntu 22.04 进行了测试(subiquity 22.04.2)。