是否可以从另一个模块中的 .pp 文件调用一个 Puppet 模块中定义的自定义 Ruby 函数?

Can a custom Ruby function defined in one Puppet module be called from a .pp file in another module?

我有一个自定义函数,我需要从至少两个不同的人偶模块调用(服务器端)。这些调用将在 Puppet DSL 定义的类型中进行,而不是基于 Ruby 的自定义类型和提供程序。

我知道,如果我将定义放在 "lib\puppet\parser\functions" 目录中的 .rb 文件中,就可以在该模块中访问它。该函数是否可以从其他模块调用,也许在它之前有一些模块限定符?或者我需要使用其他方法吗?该函数接受两个字符串参数和 returns 一个散列。

我对自定义函数知之甚少:

https://docs.puppetlabs.com/guides/custom_functions.html

https://docs.puppetlabs.com/guides/plugins_in_modules.html

下面的博客 post 似乎暗示所有模块的所有功能都可以从任何模块访问,但我可能误解了它:

http://www.masterzen.fr/2011/10/29/puppet-extension-points-part-1/

模块中的插件始终可供编译器使用,在任何清单中,包含所有模块。对于类型和解析器函数都是如此。

例如,stdlib 模块包含 file_line 类型,明确用于模块外部。

如果您启用了 pluginsync,Puppet 将提供您所有的自定义 factstypesfunctions

puppet.conf中设置pluginsync=true

参考

Plugins in modules