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

时间:2015-02-27 15:54:58

标签: ruby puppet

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

我知道如果我将定义放在“lib \ puppet \ parser \ functions”目录中的.rb文件中,则可以在该模块中访问它。可以从其他模块调用该函数,可能之前使用某些模块限定符吗?或者我是否需要使用其他方法?该函数接受两个字符串参数并返回一个哈希值。

我对自定义函数的了解很少:

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

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

以下博文似乎表明所有模块的所有功能都可以从任何模块访问,但我可能会误解它:

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

2 个答案:

答案 0 :(得分:3)

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

例如,stdlib模块包含file_line类型,明确表示在模块外部使用。

答案 1 :(得分:0)

如果您启用了pluginsync,则puppet将提供您的所有自定义factstypesfunctions等。

puppet.conf设置pluginsync=true

参考

Plugins in modules