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