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

获取 /{环境}/certificate_statuses/no_key

puppetdb 也是一个 api,但不确定正在使用的环境是否有 puppetdb。(检查)。

木偶有类似 ansible.runner 的东西吗?还有其他想法吗?

4

1 回答 1

3

您首先需要在auth.conf. 然后,您可以使用内置的 urllib2 或外部请求库来使用适当的 SSL 客户端证书查询 API 进行身份验证。

如果不想处理 SSL 客户端证书,可以使用allow_ipin 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 回答