我对自动安装过程还不熟悉,我发现文档很难理解;但是,大多数文档都提到使用虚拟机 (qemu),而我们并没有使用。在自动安装快速入门页面上,它有:
kvm-no-reboot-m 2048
但我没有看到其他示例显示从内核提示符启动的正确命令序列(即从编辑 grub 启动的 ISO 启动)。我认为我不需要为这个用例组装 ISO。我们最终会将其放入 Foreman,我们使用了几种不同的系统布局。
我还看到其他参考资料表明您的自动安装文件本身必须命名为用户数据或元数据(即:如果您从 HTTP 中提取)。
我曾尝试过这样做但都失败了。
linux /casper/vmlinuz 自动安装 ip=DHCP ds=nocloud-net;s=http://our-server/path/to/autoinstall.yaml ---
我将 autoinstall.yaml 重命名为“user-data”,但没有成功。我不明白为什么文件需要特定的名称。有些示例建议你“需要”转义分号,而其他示例则不需要;有些示例建议你不需要分号。这太奇怪了。
DHCP 工作正常。
我正在寻找一些有用的、真实的例子来了解如何正确使用它。
编辑:我确实看到了参考:
但即使在那篇文章中,人们似乎也不确定什么真正有效,什么无效。例如,有些人在命令序列中包含 ' 引号:
linux /casper/vmlinuz autoinstall quiet ds='nocloud;s=/cdrom/' ---
是哪一个?我看到很多担忧/抱怨,说官方文档对此含糊不清或保持沉默。
对于像 Foreman 这样的系统下的自动化,这是否意味着我需要为我想要部署的每种类型的系统创建一个包含自动安装(用户数据)内容的自定义 ISO?
答案1
从使用 ISO 启动并通过 HTTP 加载自动安装文件的示例来看,您可能需要 boot 命令
linux /casper/vmlinuz autoinstall "ds=nocloud-net;s=http://our-server/path/to/"
数据源 ( ) 参数周围的引号ds
是最简单的选项,因为引号适用于 grub(需要转义或引号)和 SYSLINUX(不需要转义或引号,但可以使用引号)。
URL 是目录包含自动安装文件。以下 URL 需要起作用。该meta-data
文件可以为空,但必须存在。
http://our-server/path/to/meta-data
http://our-server/path/to/user-data
一般来说(我不熟悉 Foreman),您不需要为不同类型的系统创建自定义 ISO,但如果您想为不同的系统使用不同的自动安装文件,您可能必须做一些聪明的事情。