2

すべての puppet ノードのリストを取得する必要があります (基本的に puppet cert list --all の出力)。puppet 2.6.18でpythonを使用して(コマンド自体でexecまたは同様のものを使用せずに)同じことを行う最良の方法は何ですか

puppet 2.7.0 以降には、同じことを実現するための HTTP API があります。

http://docs.puppetlabs.com/guides/rest_api.html#certificate-request

GET /{環境}/certificate_statuses/no_key

puppetdb にも 1 つの API がありますが、使用している環境に puppetdb があるかどうかはわかりません。(それをチェックしています)。

パペット用の ansible.runner のようなものはありますか? 他の考えはありますか?

4

1 に答える 1

3

最初に で REST API へのアクセスを設定する必要がありますauth.conf。次に、組み込みの urllib2 または外部要求ライブラリを使用して、認証用の適切な SSL クライアント証明書を使用して API をクエリできます。

SSL クライアント証明書を扱いたくない場合は、 で使用できallow_ipますauth.conf。API のより機密性の高い領域 (カタログの要求など) に関心がない場合にのみ、これを行います。

Puppet REST API の Python ラッパーを作成し、GitHub に投稿しました: pypuppet

例えば、

>>> import puppet
>>> p = puppet.Puppet()
>>> print p.certificates()

詳細については、README と例auth.confを参照してください。それがあなたにとってどのように機能するか教えてください。

于 2013-09-20T16:13:03.230 に答える