📅  最后修改于: 2021-01-08 05:04:18             🧑  作者: Mango
Puppet允许我们创建自定义功能。自定义功能有助于增强和扩展Puppet模块和清单文件的容量。
众所周知,Puppet提供了内置函数的列表,但是如果您要在编译目录时以及对内置函数的数据进行一些修改或与第三方服务进行交互时(如果它们是内置的)函数不足以满足您的要求,则可以为Puppet创建自定义函数。
创建自定义函数,它将像内置函数一样工作,可以调用它们,并可以使用它返回一些值。甚至Puppet也提供与其他用户共享这些功能的功能。
Puppet允许两个接口编写自定义函数:
自定义函数包含.rb文件,这些文件分布在模块之间。自定义函数位于lib / puppet / parser / 函数。要从.rb文件加载函数,请使用以下路径:
$libdir/puppet/parser/functions
puppet/parser/functions sub-directories in your Ruby $LOAD_PATH
Puppet在puppet :: parser :: Functions模块内部提供了newfunction方法,以定义新函数。将任何函数名称与newfunction方法一起使用。
让我们构建一个函数,用于将字符串写入目录/ tmp中的文件:
module Puppet::Parser::Functions
newfunction(:write_line_to_file) do |args|
filename = args[0]
str = args[1]
File.open(filename, 'a') {|fd| fd.puts str }
end
end
如果已定义函数,则可以在清单文件中使用它,如下所示:
write_line_to_file('/tmp/hello.txt, "Hello World!")
在这里,write_line_to_file函数是statement函数的示例。该函数执行操作,不返回任何值。