如何创建 Ubuntu Focal 自动安装服务器 .ISO 映像

如何创建 Ubuntu Focal 自动安装服务器 .ISO 映像

我们之前的ISO生成方法:

  1. 下载 ISO
  2. 安装 ISO
  3. 将文件从 iso 复制到新目录
  4. 修改bootmenu.cfg、grub.cfg等文件
  5. 添加预置
  6. 使用以下方式构建 ISOxorriso

我们通过 ansible 和其他一些自动化方法在虚拟机管理程序上很好地利用了虚拟机的 cloud-init。因此,我们在使用 cloud-init 时没有遇到任何问题。但是,由于删除了 Debian 安装程序,因此需要将我们的流程调整为新的“cloud-init”唯一方法,如下所示:Ubuntu 自动安装 Wiki 页面

他们的所有示例似乎都是针对 KVM VM 的。我找不到任何文档来说明如何在没有 PXE 启动的情况下为物理服务器完成相同的任务。

根据他们的自动安装快速启动,每次“自动化”安装都需要安装多个映像/文件。当尝试在拥挤的数据中心/通过 IDRAC 启动多个自动化安装时,这是不可接受的。

我们研究过 MAAS,并且过去也使用过它。简而言之,对于某些情况,PXE 启动并不是我们喜欢的选项。

我如何恢复使用首选的 cloud-init 方法生成单个、可安装且可启动的 ISO 文件的能力?

TLDR;我们过去常常通过安装 ubuntu 提供的 iso、修改映像文件,然后使用重新创建可刻录的单个 ISO 来创建预置 iso 映像xorriso。如何通过 cloud-init 完成相同的任务。

研究的选项:

无云- 被拒绝,因为再次,只有示例使用 VM,如果我可以以某种方式将其插入到 iso 中,我会很乐意使用 cloud-init 文件。

CENTOS 论坛:我能找到的有关云初始化方法的最佳指南。

Ubuntu 快速入门指南 - 也仅在示例中列出了虚拟机

Openstack 镜像指南- 一些信息,但没有关于从中构建实际 ISO 或图像的信息。

当我们创建 ISO 时,我们使用 grub 菜单中的 linux 命令来启动自动安装:

menuentry "Install Ubuntu Server for IT" {
    set gfxpayload=keep
    linux   /install/vmlinuz  file=/cdrom/preseed/customubuntu.preseed debian-installer/locale=en_US console-setup/ask_detect=false console-setup/layoutcode=us keyboard-configuration/xkb-keymap=us auto=true priority=critical quiet ---
    initrd  /install/initrd.gz
}

如何创建一个好的 grub 菜单项命令来在同一文件系统/ISO 上使用 cloud-init 文件?

就像是:

linux   /install/vmlinuz  file=/cdrom/cloudinit/userdata file=/cdrom/cloudinit/metadata console-setup/ask_detect=false console-setup/layoutcode=us keyboard-configuration/xkb-keymap=us auto=true priority=critical quiet ---

更新: s3rj1k 的 GIST提供了一个非常有趣的配置,类似于我们以前的预置方法。我现在正在测试它。

答案1

既然没有答案,我就回答我自己的问题。

此论坛主题Ubuntu 话语讨论 随着:s3rj1k 的 GIST

为新的自动安装程序提供可用的 ISO 创建模型。当前的问题围绕用户数据和身份,这使得自动安装的 ISO 没有真正可用的用户,除非您使用s3rj1k 的方法,只需修改根并在创建后不久使其过期,这种方法有效,但在我看来存在一些安全问题。

相关内容