使用Puppet进行任意软件配置管理?

使用Puppet进行任意软件配置管理?

我正在评估 Puppet 作为内部软件配置和分发系统的潜在替代品。我正在寻找建议,了解 Puppet 是否能够满足执行特定于节点、任意且有时是临时的软件配置更改的某些要求。

我们当前的系统提供了一个 CMDB,用于跟踪各个服务器、服务器的基本信息(操作系统、IP 地址、硬件平台等)以及已安装的所有软件组件。这些组件包括内部开发的软件应用程序、操作系统补丁、实用程序等。当前系统还提供基于 sftp/ssh 的软件分发/安装功能,并在端点上运行脚本以执行安装程序。

一个关键要求(我们当前的系统提供)是能够为任何给定组件定义任意软件配置值。每个跟踪组件都有预定义的配置参数,其中一些是所有服务器通用的,一些是可能可以被特定服务器覆盖,其中一些必须可以被每台服务器覆盖。在我们当前的系统中,我们在将软件分发包推送到端点之前配置这些参数。这些分发包中有脚本,它们使用配置参数来生成配置文件,这些配置文件作为分发和安装的一部分推送出去。

过去几天,我阅读了大量有关 Puppet 的文档,但我仍然不清楚 Puppet 是否能够提供这一关键功能。我能确定的最好结果是,它肯定需要编写自定义事实以用作配置参数,但除此之外,我无法确定我是否可以为这些事实配置特定值并导致这些值在端点上配置。

只需查看 PE 控制台中节点的库存部分,这与我所寻找的类似,但我需要按层次结构组织它的能力(相关配置参数或按类别/组件/等分组的“事实”),以及为任何这些自定义事实指定默认值和/或覆盖值的能力。

目前,我不确定 Puppet 是否可以提供此功能,或者我该如何设置它。我见过对 Hiera 的引用,但关于它的详细信息或示例用例很少,所以我不知道这对我的情况是否有用。

值得一提的是,该解决方案最初仅用于管理 Windows 服务器,但最终也会扩展到 Linux 服务器。

感谢您提供的任何建议。

答案1

是的,完全正确。这不一定需要以任何方式涉及自定义事实或事实清单,尽管如果您愿意的话也可以。

如果你有兴趣在节点声明中设置异常(集中在主节点上),那么请查看参数化类。这将允许您在将类包含到节点中时定义类的设置。

或者,如果您在节点上设置自定义事实,则可以简单地在类定义中利用这些事实来进行任何必要的更改。

请告诉我这是否有意义,或者您是否需要更具体的示例 - 可进行自定义的地方可能与您当前的自定义工作流程不同,因此在深入实施之前,请确保它能够按照您需要的方式工作。

相关内容