是否可以告诉puppet为一个(或所有)节点编译目录并将该特定数据保存在某个地方?
我对在每个节点上获取所有需要的软件包及其版本特别感兴趣,但是获取任何数据的通用方法也很合适。
是否可以告诉puppet为一个(或所有)节点编译目录并将该特定数据保存在某个地方?
我对在每个节点上获取所有需要的软件包及其版本特别感兴趣,但是获取任何数据的通用方法也很合适。
Answers:
更新
该原始答案现在已过期。Puppet 3.x的更新命令是:
puppet resource package
如果要查找节点上安装的所有软件包和版本,无论它们是否由Puppet安装,则以下命令都是内置的,可以在任何Puppet节点上运行:
ralsh package
这会将数据以Puppet清单形式输出到stdout。
Ralsh将适用于已实现instances
方法的任何资源类型(用户,组等)。
如果您要集中检查YAML目录中是否有Puppet清单中定义的所有资源,则您的Puppetmaster已经在其中缓存了此信息/var/lib/puppet/client_yaml/catalog
,您只需要使用所选的YAML解析器对其进行解析。最近推出的Puppet库存服务可能对您来说也是一个不错的选择。如果您在0.25.x之类的旧版本上运行,则可以使用storeconfigs。
rpmorphan
。
package
Puppet在节点目录中列出的资源的完整列表?除非您愿意解析缓存的目录,否则最好的选择是查询PuppetDB。查询API 在此处可用。
老实说,这就是mcollective要做的事情。具体来说,mcollective的软件包提供者: http
这完全跳过了人偶,甚至不需要安装人偶。