我目前正在使用 cloud-init 自动安装过程。
我们通过 PXE 安装 ubuntu 或 debian 的方式是启动一个 linux miniroot,获取 ubuntu/debian 内核和 initrd。修补 preseed 并将其打包到 inird 中。然后我们做了一个 kexec 并且 die 安装程序在没有用户交互的情况下运行。
这就是我想对 cloud-init 安装做的事情。启动 miniroot,修补用户数据 yaml 文件并将其打包到 initrd 中。
目前在 apache 上使用 havin 用户数据,安装运行良好。
是否有可能将用户数据打包到 initrd 中并使其在不需要 apache 的情况下无人值守安装?我在 Linux Mint 20-X 上使用了类似的方法,其中 preseed 在 initrd 中,iso 内容通过 nfsroot 加载
这是有效的 kexec 命令:
/sbin/kexec --load /mnt/hd/tmp/vmlinuz --append='url=http://10.100.1.40/ubuntu-21.10-live-server-amd64.iso autoinstall ds=nocloud-net;s=http://10.100.1.40/ubuntu22-04/ubuntu22-04.nightly.test/ ip=dhcp ---' --initrd=/mnt/hd/tmp/initrd
这个现在没有
/sbin/kexec --load /mnt/hd/tmp/vmlinuz --append='url=http://10.100.1.40/ubuntu-21.10-live-server-amd64.iso autoinstall ds=nocloud;s=/ ip=dhcp ---' --initrd=/mnt/hd/tmp/initrd