在我的系统上,我使用导出的资源和资源集合来管理我系统的 /etc/ssh/known_hosts 引用。这适用于我所有通过 puppet 管理的 SSH 主机。但我也有不受 puppet 管理的系统(交换机、路由器等),而且我没有立即开始管理它们的计划。
有没有什么优雅的方法可以将那些非托管系统的主机密钥变成 puppet?现在我只是把它们都放在一个大丑陋的班级里,但一定有更好的方法。我曾想过以某种方式尝试将这些主机的密钥移动到 hiera 或其他东西,但我还没有找到一个不难看的解决方案。
有没有人有我可以在这里遵循的好方法/模式?
有多种方法可以实现这一目标。我尝试保持我的类通用,我的所有配置数据都在 hiera 中。当我处理数据集合时,我尝试使用分层哈希,这样我就不必更改我的类或定义代码。
1:使用分层散列来存储键的集合。
2:创建一个为每个键调用 create_resource 的类(它将调用定义“键”)。
3:创建一个为每个键工作的定义。
注意:在某个阶段,您最终可能会将敏感信息存储在您的 hiera 中。您可能需要考虑加密一些层次敏感值。
嗯......也许在 Hiera 中,
hiera_array
收集数据,通过定义的类型将该数组输入资源?由于您需要主机名和密钥,您要么需要将它们都放在一个字符串中,要么将它们放在split()
定义的类型中,或者让数组中有更复杂的东西(可能是哈希)。管理填充它并使其保持最新仍然令人头疼;也许是一个小脚本,其中包含要连接的节点列表、从中收集密钥并生成 hiera 数据?