han*_*ast 6 networking puppet cmdb
我们的基础设施:我们为大约 250 个节点(大约 100 个硬件服务器)运行一个 puppet master。节点本身上的操作系统是完全傀儡化的。
现在我们正在考虑将此 Puppet 设置扩展到以下域:
是否有软件(开源与否无关紧要)可以让我们实现这一目标?我想它有一个关系数据模式,server
或者switch
可以由 web ui 填写。然后,对于这 4 个点中的每一个,都有脚本来从表中提取数据并将它们推送到设备。
我们很乐意,因为我们希望将所有配置集中在一个地方,但是...
1+2可以在 puppet 中完成,但对于 250 个节点来说,这看起来就像一个巨大的 puppet 清单。此外,我们希望尽快通过 puppet foreman 添加 VM 配置,因此“IP 预留系统”需要是“反应性的”,因此 IMO 需要在 puppet 之外。
3 可能是不可能的,因为交换机还没有为 puppet 做好准备,当我们在 puppet 的节点层之上添加一个“硬件”层时,
4可能是puppet 的可能。
有什么想法吗?
AFAIK 工头已经引领了正确的方向,所以也许你应该开始玩这个。
除此之外,看看自定义事实。它们是访问各种数据并使其在 Puppet 清单中可用的强大方式。例如,创建一个自定义事实$::inventory_ipaddress
,甚至$::ipaddress
用用于配置的规范事实覆盖该事实。
对于 1:对于大量主机,通常建议不要有数百个node
定义,而是有一组角色和配置文件。
这里的一般设计挑战是从单一的真实来源到供应的信息流清晰。
对于 2+3:您可以使用 puppet 调用各种辅助脚本和工具,但我怀疑它是否是该工作的最佳工具,因为它可能不是“真相之源”。
对于 4:这介于两者之间。我自己在 EC2 实例上使用 puppet 来定期触发 Zabbix 库存更新并使用因子来填充例如角色、操作系统版本、安全组。警告:我的标准事实来源是一个配置工具,我的人偶清单可以在其中更改设置;另一方面这个盘点只是最后的结果来验证结果。