0

可以在 puppet 文件中导入 python 类/对象/函数(具有自定义提供程序或任何其他的.rb 文件)吗?除了“exec”之外,还有什么方法可以使用 puppet 运行 python 代码?

4

1 回答 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 回答