是否可以在puppet文件中导入python代码?

时间:2016-04-14 09:55:06

标签: puppet puppet-enterprise

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

1 个答案:

答案 0 :(得分:0)

Ruby有一个system()方法,您可以通过该方法运行外部Python程序。 Ruby还有fork()exec(),你可以用它来控制你自己。 Puppet还有你的Ruby插件代码可能使用的后者包装。

但你似乎要求一些不同的东西。标准的C Ruby实现提供了本机(C)扩展,Python有一个C API。因此,原则上可以通过本机扩展在Ruby中嵌入Python解释器,并在路径Ruby之后调用它 - > C - >蟒蛇。您可以在Puppet支持的任何类型的Ruby插件中使用此类扩展,包括自定义函数,自定义事实,资源提供程序甚至ERB模板。

在实践中,我不推荐嵌入方法。虽然我确信它可以工作,但似乎有很多不必要的复杂功能,并且需要大量的运行时开销。