我需要获取所有木偶节点的列表(基本上是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吗? 还有其他想法吗?
答案 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
。让我知道它是如何为你工作的。