确保具有某些事实的所有傀儡节点的列表是最新的

我正在使用puppet来pipe理大约十几个节点。 其中一台服务器有一个监视工具,需要列出所有节点和一些基本规格。

我想利用puppet来确保列表中包含每个当前节点,并且基本规范是最新的(通过节点的最新facts )。

我的第一个想法是parsing/var/lib/puppet/yaml/facts并根据这个创build我需要的文件。 不是最优雅的想法,但它可能工作。

任何人如何解决这个问题有更多优雅的build议?

导出的资源 。 会使这相对容易。

这可能像这样简单。 但是,您可以使用模板或片段或许多其他的东西来在系统上生成一个文件,其中包含所有您想要的节点的所有数据。

以下是我用来保存所有节点列表的一个例子,以及facter是否检测到它们是虚拟机。

 @@file {"/srv/puppet_nodes/hosts.d/$::clientcert": content => join( [$::clientcert, "%$::lsbdistid%", "%$::lsbdistcodename%", "%$::virtual%", "\n"],' '), tag => 'nodestats', } # files will be saved on the filesystem on destnode.example.org if $::clientcert == 'destnode.example.org' { File <<| tag == 'nodestats' |>> }