木偶系统的木偶sshkey集合

在我的系统上,我使用导出的资源和资源集合来pipe理系统的/ etc / ssh / known_hosts引用 。 这对我所有通过木偶pipe理的SSH主机都很有效。 但是我也有系统不是由木偶(交换机,路由器等)pipe理,我没有任何立即计划开始pipe理它们。

有没有什么优雅的方式来获得这些非托pipe系统的主机密钥到puppet? 现在我只把他们全部放在一个丑陋的class级里,但是一定有更好的办法。 我曾经想过要把这些主机的密钥移到hiera或其他东西上,但是我还没有find一个不难看的解决scheme。

有没有人有一个很好的方法/模式,我可以在这里遵循?

我曾经想过要把这些主机的密钥移到hiera或其他东西上,但是我还没有find一个不难看的解决scheme。

有很多方法可以做到这一点。 我尝试保持我的类通用,与我所有的configuration数据hiera。 当我处理数据集合时,我尝试使用hiera散列,这样我就不必更改我的类或定义代码。

1: 使用hiera hash来存储一组密钥。

 hiera_key_hash: key-1: name: cisco500 type: router key: xxx key-2: name: cisco100 type: switch key: xxx 

2: 创build一个为每个键调用create_resource 的类 (它将调用define'键')。

 class keys { create_resources( "key", hiera('hiera_key_hash') ) } 

3: 创build一个定义来完成每个键的工作。

 define key($name, $type, $key) { // code goes here } 

注意:在某个阶段,您最终可能会在敏感信息中存储敏感信息。 你可能要考虑encryption一些你的hiera敏感值。

嗯…也许在hiera_array ,用hiera_array收集数据,通过一个定义的types提供该数组到资源? 既然你需要主机名和密钥,你可能需要把它们都放在一个string中,然后split()split()成定义的types,或者让数组有更复杂的东西(可能是散列)。

仍然很头疼pipe理和保持最新; 也许是一个脚本与一个节点列表连接,从中收集密钥,并生成hiera数据?