Puppet 函数

2024 年 8 月 29 日 | 4 分钟阅读

我们知道,Puppet 使用 Ruby 编程语言,与其他编程语言一样,Ruby 也支持函数。我们可以使用 Ruby 语言编写函数,并可以将其分发到 puppet 模块中。Puppet 提供了两种不同类型的函数

statement: 这种类型的函数不返回任何值,用于执行独立的任务。它可以用于在新清单文件中导入 Puppet 模块。

rvalue: 在 Puppet 中,如果要定义具有返回类型的函数,则可以使用 rvalue 函数。只有当语句需要值时才能使用 rvalue,例如 case 语句或赋值。一个函数只能接受两个参数作为参数。

在 Puppet 中,我们可以根据我们的要求创建函数。甚至 Puppet 还提供了许多内置函数。让我们看一下一些内置函数的列表

函数描述语法类型
abs它将返回数字值的绝对值。abs(Numeric($str_val))rvalue
alert此函数用于在服务器上以 alert 级别记录消息。alert(Any *$values)statement
break中断最内层迭代,就像找到了输入结束一样。此函数不接受任何参数。break()statement
binary_file此函数从模块或文件系统加载二进制文件,并返回二进制内容。binary_file(String $path)rvalue
call用于按名称调用任意函数。call(String $function_name, Any *$arguments, Optional[Callable] &$block)statement
create_resources此函数用于将哈希转换为资源集合,并将其插入到目录中。create_resources($type, $resources)statement
debug在服务器上以 debug 级别记录消息。debug(Any *$values)statement
crit在服务器上以 crit 级别记录消息。crit(Any *$values)statement
defined验证是否定义了给定的类或资源类型。defined(Variant[String, Type[CatalogEntry], Type[Type[CatalogEntry]]] *$vals)rvalue
emerg此函数用于在服务器上以 emerg 级别记录消息。emerg(Any *$values)statement
fail (失败)使用解析器错误失败。fail()statement
err此函数用于在服务器上以 err 级别记录消息。err(Any *$values)statement
file它从模块中获取文件,并将其内容作为字符串返回。file()rvalue
fqdn_rand用于根据节点的 fqdn 生成随机数。fqdn_rand(MAX, [SEED])rvalue
include用于评估一个或多个类。include(Any *$names)statement
info此函数用于在服务器上以 info 级别记录消息。info(Any *$values)statement
inline_template用于评估模板字符串并返回其值。inline_template()rvalue
join此函数用于将值数组连接成字符串,元素之间用分隔符分隔。join(Array $arg, Optional[String] $delimiter)rvalue
keys此函数用于将哈希的键作为数组返回。keys(Hash $hsh)rvalue
md5此函数用于从给定的字符串返回 MD5 哈希值。md5()rvalue
new此函数创建指定数据类型对象的新实例。new(Type $type, Any *$args, Optional[Callable] &$block)statement
notice此函数用于在服务器上以 notice 级别记录消息。notice(Any *$values)statement
realize用于使虚拟对象变为真实。realize()statement
require(需要)用于评估一个或多个类,并将所需的类添加为依赖项。require(Any *$names)statement
round用于返回四舍五入到最接近值的整数值。round(Numeric $val)rvalue
rstrip从字符串中删除尾随空格rstrip(String $arg)rvalue
sha1用于从给定的字符串返回 SHA1 哈希值。sha1()rvalue
sha256此函数用于从给定的字符串返回 SHA256 哈希值。sha256()rvalue
shellquote此函数用于引用和连接参数以在 Bourne shell 中使用。shellquote()rvalue
大小用于返回 String、Hash、Array 或 Binary 值的大小。size(Variant[Collection, String, Binary] $arg)rvalue
length用于返回 String、Hash、Array 或 Binary 值的长度。length(Variant[Collection, String, Binary] $arg)rvalue
split(分裂)使用给定的模式将字符串拆分为数组。split(String $str, String $pattern)rvalue
sprintf此函数对文本进行 printf 风格的格式化。sprintf()rvalue
strip从字符串中删除前导和尾随空格strip(Iterable[Variant[String, Numeric]] $arg)rvalue
标签此函数用于将给定的标签添加到包含类或定义。tag()statement
tagged此函数用于测试最新的容器是否已使用给定的标签进行标记。它将返回布尔值。tagged()rvalue
template此函数首先从模块加载 ERB 模板,然后将输出值评估为字符串。 template()rvalue
upcase此函数用于将 String、Array 或 Hash(递归地)转换为大写。upcase(String $arg)rvalue
values此函数用于将哈希的值作为数组返回。values(Hash $hsh)rvalue
versioncmp此函数用于比较两个版本号。versioncmp(String $a, String $b)rvalue
警告此函数用于在服务器上以警告级别记录消息。warning(Any *$values)statement