我正在为大量服务器使用简单的人偶设置。Puppet 使用外部节点分类器从 CMDB 获取信息。这非常有效。
每次运行后,Puppet master 使用自定义报告模块将运行状态发布到 CMDB。这也很好用。
我想要的是 Puppet 在每次运行到 CMDB 后发布节点的事实。这样做,CMDB 可以自动更新内存、MAC 地址等内容。
问题是; 我怎样才能做到这一点?
报告机制仅提供状态和一些指标。
编写自定义 storeconfig 模块并不容易(或者至少我找不到任何相关信息)。
谢谢你的帮助。
我在 Puppet 中创建了一个报告模块来解决这个特定的用例。记者试图阅读最新的 yaml 报告,然后在帖子中添加额外的内容。
如果您想了解有关编写自定义 Puppet 报告的更多信息,请查看When Puppet reports part 2
您是否有硬性要求将它放在单个 CMDB 中,或者目标只是让它可查询?PuppetDB 已经提供了一个用于事实查找的 API:
https://puppet.com/docs/puppetdb/latest/api/query/v4/facts.html
严格来说,Puppet 本身并不知道运行结束时事实的价值是什么——只知道运行开始时。我不确定你的结局是什么,但由于 Puppet 本身并不以任何方式与你的事实价值相关联,更好的解决方案可能是使用 MCollective 而不是 Puppet 来聚合关于你的节点的详细信息,并使用回传到您的 CMDB 的自定义注册插件。