puppet cert list全部使用api / python?

时间:2013-09-16 03:59:39

标签: python puppet

我需要获取所有木偶节点的列表(基本上是puppet证书列表的输出--all)。在puppet 2.6.18中使用python(在命令本身上不使用exec或类似的东西)做同样的事情的最佳方法是什么?

puppet 2.7.0以后有HTTP API来实现同样的目的。

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

GET / {environment} / certificate_statuses / no_key

puppetdb也是一个api,但我不确定env是否正在使用puppetdb。 (检查那个)。

对于木偶有什么像ansible.runner吗? 还有其他想法吗?

1 个答案:

答案 0 :(得分:1)

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

如果您不想处理SSL客户端证书,可以在allow_ip中使用auth.conf。如果您对API的更敏感区域(如请求目录)不感兴趣,我只会这样做。

我在Puppet REST API周围编写了一个Python包装器并将其发布在GitHub上:pypuppet

例如,

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

有关详细信息,请参阅自述文件和示例auth.conf。让我知道它是如何为你工作的。