Puppet
如何降級 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 在有問題的機器上不可用,所以我正在考慮 downgrading
puppetdbquery
。但是,我找不到它的安裝位置/方式。到目前為止,我已經檢查過dpkg
(我正在執行 Debian Jessie)gem
和librarian-puppet
,但它們似乎都沒有安裝puppetdbquery
.無論如何要找到它的來源以及如何降級它?
為了追踪文件(感謝ssm對源連結的回答),我做了:
find / -name connection.rb
然後我對那些包括“看起來你正在使用 PuppetDB 版本 < 3.0。”的結果進行 grep,我最終得到了一個文件:
/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
puppetdbquery是一個 puppet 模組,即使它可能不在您的 Puppetfile 中,它也可能作為您其他模組之一的依賴項安裝。
查看 puppet master 的模組路徑中列出的目錄。
您引用的錯誤消息位於該模組的lib/puppetdb/connection.rb中。