如何降级 puppetdbquery?

如何降级 puppetdbquery?

我在使用 puppetdb 查询的 puppet 运行时遇到错误:

Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: undefined method `server_urls' for #<Puppet::Util::Puppetdb::Config:0x00000003cd66c8> at /etc/puppet/local-modules/monitoring/manifests/init.pp:14 on node hostname.goes.here
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run

通过运行 puppetmaster --verbose,我得到了一个警告看起来很有帮助:

Warning: It looks like you are using a PuppetDB version < 3.0.
This version of puppetdbquery requires at least PuppetDB 3.0 to work.
Downgrade to puppetdbquery 1.x to use it with PuppetDB 2.x.

PuppetDB 3.0 在相关机器上不可用,因此我正在考虑降级puppetdbquery。但是,我找不到它在哪里/如何安装。到目前为止,我已经检查过dpkg(我正在运行 Debian Jessie)gemlibrarian-puppet,但似乎都没有安装puppetdbquery
有没有办法找到它的来源以及如何降级它?

答案1

puppetdb查询是一个 puppet 模块,即使它可能不在你的 Puppetfile 中,它也可能作为你的其他模块之一的依赖项进行安装。

查看你的 Puppet Master 上的 modulepath 中列出的目录。

您引用的错误消息位于lib/puppetdb/连接.rb在那个模块里。

答案2

为了找到该文件(感谢ssm 的回答对于链接来源),我做了:

find / -name connection.rb

然后我 grep 了包含“看起来您正在使用 PuppetDB 版本 <3.0。”的结果,最终得到一个文件:

/var/lib/gems/2.1.0/gems/ruby-puppetdb-2.1.1/lib/puppetdb/connection.rb

一开始这让我很困惑,因为它没有提到 puppetdbquery,但仔细检查后存储库,我发现它包含的 gemspec 称自己为“ruby-puppetdb”,而不是 puppetdbquery。因此,修复方法是运行:

gem uninstall ruby-puppetdb --version 2.1.1

我安装了旧版本的 gem,所以系统恢复使用那些版本。

总结一下: 当作为 gem 安装时,puppetdbquery 被称为 ruby​​-puppetdb

相关内容