Как мне перейти на более раннюю версию puppetdbquery?

Я получаю сообщение об ошибке при запуске марионеток, которые используют запросы puppetdb:

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 с - подробный , я получить предупреждение , которое выглядит полезным:

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), gem и librarian-puppet , но ни один из них, похоже, не установлен puppetdbquery .
Есть ли способ узнать, откуда он взялся и как его понизить?

2
задан 26 December 2015 в 03:58
2 ответа

Для отслеживания файла (спасибо ssm answer для ссылки на источник), я сделал:

find / -name connection.rb

Затем я получил результаты для тех, которые включали: «Похоже, вы используете версию PuppetDB <3.0.», В итоге я получил один file:

/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

У меня были установлены более старые версии гема, поэтому система вернулась к их использованию.

Подведем итог: При установке в качестве драгоценного камня puppetdbquery называется ruby-puppetdb

2
ответ дан 3 December 2019 в 10:00

puppetdbquery - это модуль марионетки, и даже если его нет в вашем файле Puppetfile, он может быть установлен как зависимость одного из других ваших модулей.

Взгляните в каталогах, перечисленных в пути к модулю на вашем мастере марионетки.

Указанное вами сообщение об ошибке находится в lib / puppetdb / connection.rb этого модуля.

2
ответ дан 3 December 2019 в 10:00

Теги

Похожие вопросы