可以在 puppet 文件中导入 python 类/对象/函数(具有自定义提供程序或任何其他的.rb 文件)吗?除了“exec”之外,还有什么方法可以使用 puppet 运行 python 代码?
问问题
119 次
1 回答
0
Ruby 有一种system()
方法可以让您运行外部 Python 程序。Ruby 也有fork()
,exec()
通过它你可以自己滚动,有更多的控制权。Puppet 还包含您的 Ruby 插件代码可能使用的后者的包装器。
但你似乎在要求不同的东西。标准的 C Ruby 实现提供原生 (C) 扩展,而 Python 具有 C API。因此,原则上可以通过原生扩展在 Ruby 中嵌入 Python 解释器,并按照路径 Ruby --> C --> Python 对其进行调用。您可以在 Puppet 支持的任何类型的 Ruby 插件中使用这样的扩展,包括自定义函数、自定义事实、资源提供程序,甚至是 ERB 模板。
在实践中,我不能推荐嵌入方法。尽管我确信它可以工作,但它似乎有很多不必要的复杂性,并且运行时开销很大。
于 2016-04-14T15:12:18.227 回答