= 适用于戴尔服务器的最佳裸机配置工具? = ![ ](httpswww.redditstatic.com/desktop2x/img/renderTimingPixel.png) 我正在寻找一种工具来进行裸机发现。本质上,我需要一个可以网络启动的映像(PXE/Bios 或 UEFI),它可以发现服务器中的所有组件(CPU/磁盘/内存/NIC 型号/等)、固件版本、所有通过 LLDP 连接到的交换机端口,并将所有这些报告回某种具有 API 的库存工具。这些都是具有企业 iDRAC 许可证的戴尔服务器,但多供应商支持是一个优势。一旦我有了所有这些数据,我想建立一些自动化,这样我就可以说用这个配置文件构建一个服务器,它会查询 API 以寻找满足这些规格的服务器,然后去设置 bios 选项、RAID、配置切换端口(在端口通道中),为 PXE 安装添加一个条目(我们目前使用 cobbler,但对替代品开放),然后 PXE 引导以安装操作系统/所需的配置。那几乎肯定是基于 Ansible 的。 那里有几种开源裸机配置工具,但我对它们没有任何经验,除了一个小工头,这似乎是与我们现有的 puppet 基础设施和其他现有工具集成的巨大努力。他们中的任何一个都能做我想做的事,或者稍微修改一下工作流程就能达到相同的最终结果吗? LLDP 信息非常重要,因为我们目前依赖于在安装新设备时(在操作系统安装之前,如果操作系统安装支持,此时会自动报告)在我们的清单工具中手动记录,并且手动记录的数据往往是错误的/missing,我们必须在交换机上寻找它,以确定实际连接的地方。 我考虑过只构建一个可以做我们想做的事情的实时图像,我们已经有了一个可以用来报告的库存工具,但这可能只是我们的额外工作,可以通过现有工具避免。 ![ ](httpswww.redditstatic.com/desktop2x/img/renderTimingPixel.png) 您可能会看看 Digital Rebar。它最初是戴尔的一个内部项目,后来被剥离为自己的公司。 Suse 的 OpenStack provisioner 基于 1.0 版本,2.0 分支他们泛化得更多。所以它现在不仅仅是一个 OpenStack 项目。 httpsrebar.digital 我强烈推荐 Digital Rebar (httpsrebar.digital)。它完全符合您的要求。旨在将所有供应协议集成到一个静态编译的 Golang 二进制文件中(没有噩梦般的设置十几个外部服务来让事情正常进行)。它支持可组合(可定制)的工作流程,集成了清单、分类和验证组件。库存可以铲到外部 SoR(记录系统、资产管理数据库等),它是 100% API 优先,具有非常强大的 CLI 和出色的 Web 门户。 操作系统安装可以通过基于 kickstart/preseed PXE 或通过单个工件映像完成。它还具有完整的硬件生命周期管理(BIOS、固件、RAID 控制器)。您可以选择使用分步/阶段工作流来完成所有工作,或者如果您知道如何对机器进行分类,则可以构建完整的零接触自动化工作流。 Tinkerbell 不是一个完全自动化的工具——不建议这样做;要从中获得任何有用的东西,您需要 4 个独立且不同的微服务,更多的集成和管理难题。 Foreman 的目标是纯粹的供应,它需要设置大量的外部服务才能真正做一些有用的事情。它很脆弱。 MaaS 也非常专注于配置,如果您只购买 Ubuntu,那么它是最强大的——然而,它并不是 Ubuntu 独有的。 Digital Rebar 是一个基础设施自动化平台,设计为具有完整数据中心生命周期管理功能的现代服务。它不像大多数现有工具那样依赖于集成——与您的工具和基础设施集成是设计的核心。硬件生命周期管理有其自身的要求,而且它是从头开始设计的,以支持异构系统和复杂的基础设施环境。 [编辑] - Digital Rebar 支持 LLDP 查询作为库存阶段的一部分,因此您可以确定服务器连接到的交换机和端口。 对戴尔硬件以及其他供应商硬件提供完整生命周期管理的深度支持。 我们使用 Digital Rebar 并且喜欢它,它背后的团队在 Slack 中反应非常迅速,如果你朝这个方向发展,他们的定价是合理的。我们只是喜欢和他们一起工作。 它确实有点学习曲线,但非常灵活。此外,他们还开源了很多代码,这在尝试调试时非常有用。 过去,我与 Puppet/Foreman 的合作非常顺利,不过,不可否认,并不是我把它带到了启动和运行状态。目前我正在成为 MAAS (httpsmaas.io) 的粉丝。如果你在 Ubuntu 商店,一定要试一试。 Foreman 总体来说很酷,你可以使用 foreman discovery 插件来实现你要找的东西。你可以做一些自动化但是我的天哪,在设置过程中这是一个巨大的痛苦我想我遇到了所有可能的问题。我不得不进行离线安装和设置,这让事情变得更加复杂,而且还需要使用我无法物理访问的服务器。我的看法是它是一个很酷的工具,如果你真的需要使用它并且有预算去支持 Redhat Satellite(foreman 是 Satellite 的社区版本)。 MaaS 虽然看起来很有前途,但我并没有尝试它(我也在自动化 CentOS/RHEL 安装) 我使用 iDRAC 的内置 Redfish API。大多数企业供应商已经从管理层面公开了 Redfish。 戴尔有一个非官方的 github 存储库,其中包含一组有用的 Python 脚本,可以完成几乎所有配置工作。我将这些脚本与 Ansible 一起使用来配置裸机。 httpsgithub.com/dell/iDRAC-Redfish-Scripting 请务必注意,并非所有供应商都同等支持 Redfish。我们对多供应商环境的痛苦有很多经验。不同供应商的 BMC(底板管理控制器)(例如 iDRAC)支持不同版本的 Redfish 协议,并且一些实现方式不同。 如果您是单一供应商商店,那么此策略可以奏效,但如果您引入另一个供应商或更新版本的 BMC(或固件升级),这会改变 Redfish 支持/行为,您必须相应地调整您的工具。 您还需要通过难以管理的流程来自定义操作系统——因为您没有任何操作系统内工具——除非您将其“烧录”到您的 ISO 映像中。 如果您要替换现有的报告/管理平面并直接跳到管理程序操作系统安装,总是有 httpsdocs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.install.doc/GUID- 8C221180-8B56-4E07-88BE-789B25BA372A.html