我有一个自定义功能,我需要从至少两个不同的木偶模块调用(服务器端)。调用将在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/
答案 0 :(得分:3)
编译器中的插件始终可用于任何清单中的编译器,包含所有模块。对于类型和解析器函数都是如此。
例如,stdlib
模块包含file_line
类型,明确表示在模块外部使用。
答案 1 :(得分:0)
如果您启用了pluginsync
,则puppet将提供您的所有自定义facts
,types
,functions
等。
在puppet.conf
设置pluginsync=true