Puppet - 获取软件包和版本列表

Mic*_*yxí 11 package-management asset-management puppet

是否可以告诉 puppet 为一个(或所有)节点编译目录并将该特定数据保存在某处?

我对获取所有需要的包及其每个节点的版本特别感兴趣,但获取任何数据的通用方法也适用。

jgo*_*afe 13

更新

这个原始答案现在已经过时了。Puppet 3.x 的更新命令是:

puppet resource package
Run Code Online (Sandbox Code Playgroud)

如果您要查找节点上安装的所有软件包和版本,无论它们是否由 Puppet 安装,以下命令是内置的,可以在任何 Puppet 节点上运行:

ralsh package

这将以 Puppet 清单形式将数据输出到标准输出。

Ralsh 适用于任何instances实现了该方法的资源类型(用户、组等)。

如果您希望集中检查 Puppet 清单中定义的所有资源的 YAML 目录,您的 Puppetmaster 已经将这些信息缓存在其中/var/lib/puppet/client_yaml/catalog,您只需要使用您选择的 YAML 解析器来解析它。最近推出的 Puppet Inventory Service 对您来说也可能是一个不错的选择;如果您在 0.25.x 等旧版本上运行,则可以使用 storeconfigs。