Факты.d-Pluginfacts не удалось получить во время запуска puppet

Я только что обновил мой кукол среду 3.4.2 to 3.4.3. через apt РЕПО puppetlabs. Я обновлял агент(s) и мастер. Делать агент run приводит к следующей ошибке:

Info: Retrieving pluginfacts
Debug: Failed to load library 'msgpack' for feature 'msgpack'
Debug: file_metadata supports formats: pson yaml b64_zlib_yaml raw
Debug: Failed to load library 'msgpack' for feature 'msgpack'
Debug: file_metadata supports formats: pson yaml b64_zlib_yaml raw

Error: /File[/var/lib/puppet/facts.d]: Could not evaluate: Could not retrieve information from environment production source(s) puppet://<puppetserver>/pluginfacts

Debug: Finishing transaction [...]

тем не менее я получаю каталог от мастер, так что агент run все еще работает и, кажется, делает то, что он должен делать. (Или, скажем, я остро не могу определить, если что-то идет не так, что связано с сообщением об ошибке.)

тем не менее, я хочу избавиться от сообщения об ошибке.

Я дважды проверил версию puppet с puppet --version on агент и мастер. Я использую пассажира для кукловода. он версия 2.0.1. так что я пропустила?

Добавление: при запуске агент С предыдущей версией 3.4.2 будет сообщение об ошибке отсутствует.

какие идеи? Большое спасибо за Вашу поддержку.

ITL

7 ответов


Это связано с этой ошибкой:https://tickets.puppetlabs.com/browse/PUP-3655

проблема в том, что для работы pluginsync должен быть хотя бы один модуль в среде, который имеет


2.0.1 он был выпущен вчера. Это твоя проблема. Перейти на 1.7.x и ты должен быть в порядке.


проблема ваша встреча здесь происходит от обновления facter, и то, как вы используете частные факты с puppet на версии 3.X с фактором 2.X. Если вы хотите распространять внешние факты (это был мой случай).

Как сказано в документации facter 2.2, вам нужно переместить папку facter в дерево модулей:

лучший способ распространять внешние факты - это pluginsync, который добавлена поддержка для них в кукольном 3.4/он 2.0.1. Чтобы добавить внешний факты ваши кукольные модули, просто поместите их в MODULEPATH / модуль / факты.д./

Итак, в более старых версиях путь для внешних фактов был :

MODULEPATH / MODULE/lib/facter / external_fact.rb

Если вы измените его на :

MODULEPATH / модуль / факты.d / external_fact.rb

тогда вы больше не столкнетесь с проблемой.

в отношении

-- rustx


поймал ту же ошибку сегодня, перенастроив моего кукловода:

Info: Retrieving pluginfacts
Error: /File[/var/lib/puppet/facts.d]: Could not evaluate: Could not retrieve information from environment production source(s) puppet://puppet/pluginfacts
Info: Retrieving plugin
Error: /File[/var/lib/puppet/lib]: Could not evaluate: Could not retrieve information from environment production source(s) puppet://puppet/plugins
Info: Caching catalog for puppet
Info: Applying configuration version '1405577010'

вот мои варианты:

grundic@puppet:~$ puppet --version
3.6.2
grundic@puppet:~$ facter --version
2.1.0

перезапуск демона помог мне (я использую кукловода за пассажиром):

grundic@puppet:~$ sudo service apache2 restart 
 * Restarting web server apache2
 ... waiting    ...done.
grundic@puppet:~$ sudo puppet agent --test --verbose
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for puppet
Info: Applying configuration version '1405607835'
Notice: Dummy message for debugging
Notice: /Stage[main]/Main/Notify[Dummy message for debugging]/message: defined 'message' as 'Dummy message for debugging'
Notice: Finished catalog run in 0.06 seconds

У меня были такие же erorrs, работающие puppet 3.6.2 на centos 6.5. Понижение puppet, puppet-server, facter и hiera до предыдущей версии (3.6.1, 2.0.2, 1.3.3) "решает" проблему..


Как сказал Грундик, перезапустите мастер.

затем очистите сертификаты для кукольного агента на Мастере и удалите сертификаты на агенте. Затем повторно запустите puppet agent-t и puppet cert sign-все. Все пройдет. Это сработало для меня.


for path in `ls */lib/facter | grep :$ | sed "s,:,,"`; 
   do MODULE=`echo $path | sed "s,/lib/facter,,"`; 
   cd $MODULE && ln  -s lib/facter facts.d && cd .. ;
done

эти части особенно важно

`ls */lib/facter | grep :$ | sed "s,:,,"`

`echo $path | sed "s,/lib/facter,,"`

этот фрагмент кода должен запускаться из /etc/puppet/ modules, а также из модулей /path для каждой среды в/etc/puppet / environments.