木偶-获取软件包和版本列表


Answers:


13

更新

该原始答案现在已过期。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。


这种方法的一个问题是,与基于Red Hat发行版的内核程序包一样,它不允许同一程序包的多个版本。
Paul Gear

我不确定这是否能真正回答问题:该命令列出了当前安装的软件包,而不是Puppet所需的软件包。我对提供给的后者感兴趣rpmorphan
Tim Landscheidt

@TimLandscheidt,您是否在询问packagePuppet在节点目录中列出的资源的完整列表?除非您愿意解析缓存的目录,否则最好的选择是查询PuppetDB。查询API 在此处可用。
jgoldschrafe 2013年

@jgoldschrafe终于开始安装PuppetDB了,确实可以实现我想要的功能。我可以查询特定主机的“确保”不等于“不存在”的所有包资源,并使用JSON结果将列表提供给rpmorphan。谢谢!
Tim Landscheidt 2014年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.