我尝试了解 Foreman 和其他部署/配置系统,以及如何最好地使用它们。当然,使用一些准备好的答案和脚本(Kickstart、AutoYAST 等)安装操作系统。在大多数情况下是最好的方法。
但当你想将同一系统部署到裸机上时和到云,您又回到了云部分的图像(最好通过脚本构建,这样您就可以将图像构建视为代码)。现在考虑一下您的裸机都是同一类型;将云图像也部署到裸机上是否有意义?
是否有某种 PXE 系统可以从某个地方提取磁盘映像,运行一些类似于 cloud-init 的脚本,然后重新启动?这样的系统甚至可能对其他配置系统有用。但我没有找到任何此类系统,甚至没有关于它的讨论,这表明我走错了路。FOG 项目或者数据挖掘基础框架可能是候选者,但似乎没有人写过关于将它们与 Foreman 一起使用?
答案1
您应该区分 FOG 等配置软件(其工作方式是部署之前捕获的 HDD 映像)和 Foreman(其工作方式是部署常规安装映像并添加一些已制作的通用自动化脚本)。这两个系统并非旨在协同工作;它们追求不同的目标。
根据您的需要,可能无法通过单一设置同时配置云和裸机,那么您必须拥有 2 个“资产”,即使它们肯定是由相同的安装发行版 ISO 组成,但配置不同。
当您想将已部署的 HDD 映像复制到完全相同的硬件时,FOG 是个不错的选择。Foreman 在经典的 PXE 配置方程中添加了预制脚本,但最终您只需要编写/自定义 kickstart/preseed 脚本。如果您尝试安装自动化 Windows 而不是 Linux,则要复杂得多。
您还可以使用塞瓦(自动 PXE 服务器解决方案加速器)它允许您为网络部署提供任意数量的资产,这些资产基于分发 ISO。您可以根据需要为 Windows 和 Linux 资产编写自动化脚本。Serva 在一个 exe 中包含所有必需的服务器组件(DHCP/proxyDHCP/TFTP/HTTP/RIS/WDS)。(我与 Serva 开发有关)
答案2
这个问题问得好,我实际上正在研究这个工作流程。两周后,当我在布尔诺的 DevConf 2017 上就此问题发表演讲时,我的补丁应该已经准备好了。之后请检查此拉取请求。
https://github.com/theforeman/foreman-discovery-image/pull/44
这将集成到 Foreman Discovery Image 中,并使用 UDP Cast 工具进行传输。
答案3
好吧,我在我们的环境中就是这么做的。工作量减少到可以与 foreman 一起使用的插件,这是 @lzap 的扩展领班发现图像。
一探究竟,https://github.com/deltaprojects/foreman_discovery_image_installer 它描述了你所需要的,归结为这一点
- 使用 openstack 创建操作系统映像磁盘映像生成器或类似的工具。
- 配置 foreman [创建 PXE、完成、提供模板并与 OS 关联]。
- 运行 create_image_installer_zip.sh 并将 image_installer.zip 复制到您的 TFTP 服务器。
- PXE 启动匹配创建的模板并观察它将映像安装到磁盘,它重新启动并运行 cloud-init 来引导节点。