Puppet - получить список пакетов и версий

Можно ли сказать Puppet скомпилировать каталог для одного (или всех) узлов и сохранить эти данные где-нибудь?

Я особенно заинтересован в получении всех необходимых пакетов и их версий для каждого узла, но общий подход для получения любых данных также подходит.

2 ответа

Решение

ОБНОВИТЬ

Этот оригинальный ответ устарел. Обновленная команда для Puppet 3.x:

puppet resource package

Если вы ищете все пакеты и версии, установленные на узле, независимо от того, установлены они Puppet или нет, следующая команда встроена и может быть запущена на любом узле Puppet:

ralsh package

Это выведет данные в форме манифеста Puppet на стандартный вывод.

Ralsh будет работать для любого типа ресурса, который имеет instances реализованный метод (пользователи, группы и т. д.).

Если вы хотите централизованно проверить каталог YAML на наличие всех ресурсов, определенных в манифестах Puppet, ваш Puppetmaster уже кеширует эту информацию в /var/lib/puppet/client_yaml/catalog и вам просто нужно разобрать его с вашим YAML парсером по вашему выбору. Служба инвентаризации марионеток, которая была введена сравнительно недавно, также может быть хорошим вариантом для вас; вы можете обойтись с storeconfigs, если вы работаете на более старой версии, такой как 0.25.x.

Честно говоря, это то, для чего mcollective был создан. В частности, поставщик пакетов для mcollective: http://projects.puppetlabs.com/projects/mcollective-plugins/wiki/AgentPackage

Это полностью пропускает куклу, и даже не требует, чтобы кукла была установлена.

Другие вопросы по тегам