是否有可能告诉puppet为一个(或所有)节点编译一个目录并将某个特定的数据保存在某个地方?
我特别感兴趣的是获得所有需要的软件包及其每个节点的版本,但获取任何数据的一般方法也是合适的。
UPDATE
原来的答案现在已经过时了。 更新的Puppet 3.x命令是:
puppet resource package
如果您正在查找节点上安装的所有软件包和版本,而不pipe它们是否由Puppet安装,则以下命令是内置的,并且可以在任何Puppet节点上运行:
ralsh package
这将以Puppet清单forms将数据输出到stdout。
Ralsh将适用于任何实施了instances方法的资源types(用户,组等)。
如果你想集中检查YAML目录中所有在Puppet清单中定义的资源,你的Puppetmaster已经将这个信息caching在/var/lib/puppet/client_yaml/catalog ,你只需要用你select的YAML分析器来parsing它。 最近刚推出的木偶库存服务也可能是一个很好的select, 如果你使用的是像0.25.x这样的旧版本,你可以使用storeconfigs。
老实说,这是集体build设要做的事情。 具体而言,mcollective的软件包提供商: http ://projects.puppetlabs.com/projects/mcollective-plugins/wiki/AgentPackage
这完全跳过木偶,甚至不需要安装木偶。