Puppet-パッケージとバージョンのリストを取得


11

1つ(またはすべて)のノードのカタログをコンパイルし、その特定のデータをどこかに保存するようにpuppetに指示することは可能ですか?

ノードごとに必要なすべてのパッケージとそのバージョンを取得することに特に興味がありますが、データを取得する一般的なアプローチも適しています。

回答:


13

更新

この元の回答は古くなっています。Puppet 3.xの更新されたコマンドは次のとおりです。

puppet resource package

Puppetによってインストールされているかどうかに関係なく、ノードにインストールされているすべてのパッケージとバージョンを探している場合、次のコマンドが組み込まれ、任意のPuppetノードで実行できます。

ralsh package

これにより、Puppetマニフェスト形式でデータがstdoutに出力されます。

Ralshは、instancesメソッドが実装されているリソースタイプ(ユーザー、グループなど)に対して機能します。

Puppetマニフェストで定義されているすべてのリソースについてYAMLカタログを一元的に検査する場合、Puppetmasterはすでにこの情報をキャッシュ/var/lib/puppet/client_yaml/catalogしているので、選択したYAMLパーサーで解析する必要があります。かなり最近導入されたPuppet Inventory Serviceも、あなたにとって良い選択肢です。0.25.xのような古いバージョンで実行している場合は、storeconfigsで間に合わせることができます。


このアプローチの1つの問題は、Red Hatベースのディストリビューションのカーネルパッケージで一般的であるように、同じパッケージの複数のバージョンを許可しないことです。
ポール・ギア

これが本当に質問に答えるかどうかはわかりません。コマンドは、Puppetに必要なパッケージではなく、現在インストールされいるパッケージをリストします。私は後者のリストに興味を持っていますrpmorphan
ティムランドシャイト

@ TimLandscheidt、packagePuppetがノードのカタログにリストするリソースの完全なリストについて尋ねていますか?キャッシュされたカタログを解析することを考えていない限り、最善の策はPuppetDBを照会することです。クエリAPIはこちらから入手できます
jgoldschrafe

@jgoldschrafe最後にPuppetDBのインストールに取り掛かりましたが、実際に私が望むことをします。特定のホストの「ensure」が「absent」ではないすべてのパッケージリソースを照会し、JSONの結果を使用してリストをrpmorphanにフィードできます。ありがとう!
ティムランドシャイト14年

0

正直なところ、これはmcollectiveが行うために構築された一種のものです。具体的には、mcollectiveのパッケージプロバイダー:http ://projects.puppetlabs.com/projects/mcollective-plugins/wiki/AgentPackage

これはパペットを完全にスキップし、パペットがインストールされていることさえ必要としません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.