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

11

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

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

Михал Брикси
источник

Ответы:

13

ОБНОВИТЬ

Этот оригинальный ответ устарел. Обновленная команда для 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.

jgoldschrafe
источник
Одна из проблем этого подхода заключается в том, что он не допускает использование нескольких версий одного и того же пакета, как это обычно происходит с пакетом ядра в дистрибутивах на основе Red Hat.
Пол Гир
Я не уверен, что это действительно отвечает на вопрос: команда выводит список установленных в данный момент пакетов, а не пакетов, требуемых Puppet. Я заинтересован в списке последних, чтобы кормить его rpmorphan.
Тим Ландшайдт
@TimLandscheidt, вы спрашиваете о полном списке packageресурсов, которые Puppet перечисляет в каталоге для узла? Если вы не разбираетесь в кэшированном каталоге, лучшим вариантом будет запросить PuppetDB. API запросов доступен здесь .
jgoldschrafe
@jgoldschrafe Наконец-то дошло до установки PuppetDB, и она действительно делает то, что я хочу. Я могу запросить все ресурсы пакета, у которых «гарантировать» не равно «отсутствует» для конкретного хоста, и использовать результат JSON для передачи списка в rpmorphan. Благодарность!
Тим Ландшайдт