Puppet 函数
Puppet 函数
众所周知,Puppet 使用 Ruby 编程语言,与其他编程语言一样,Ruby 也支持该函数。我们可以用 Ruby 语言编写函数,并且可以分布在 puppet 模块中。 Puppet 提供两种不同类型的函数:
语句: 这种类型的函数不返回任何值,用于执行独立任务。它可用于在新的清单文件中导入 Puppet 模块。
rvalue: 在 Puppet 中,如果您想定义具有返回类型的函数,则可以使用 rvalue职能。右值只能在语句需要值时使用,例如 case 语句或赋值。一个函数只能接受两个参数作为参数。
在Puppet中,我们可以根据自己的需求来创建我们的函数。甚至 Puppet 也提供了很多内置功能。让我们看看一些内置函数的列表:
功能 |
说明 |
语法 |
类型 |
abs |
它将返回数值的绝对值。 |
abs(Numeric($str_val)) |
rvalue |
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 |
该函数用于将一个hash转换为一个资源集合,并插入到目录中。 |
create_resources($type, $resources) |
statement |
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) |
rvalue |
fail |
因解析器错误而失败。 |
fail() |
statement |
err |
此函数用于在服务器上记录错误级别的消息。 |
err(Any *$values) |
statement |
file |
它从模块中获取一个文件并将其内容作为字符串返回。 |
file() |
rvalue |
fqdn_rand |
用于根据节点的fqdn生成随机数。 |
fqdn_rand(MAX, [SEED]) |
rvalue |
include |
这用于评估一个或多个类。 |
include(Any *$names) |
statement |
info |
此函数用于在服务器上以信息级别记录消息。 |
info(任何*$值) |
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(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 |
size |
用于返回 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 |
此函数用于将给定的标签添加到包含类或定义中。 |
tag() |
statement |
tagged |
该函数用于测试最新的容器是否带有给定的标签。它将返回布尔值。 |
tagged() |
rvalue |
template |
此函数首先从模块加载 ERB 模板,然后将输出值作为字符串进行计算。 |
template() |
rvalue |
upcase |
此函数用于将字符串、数组或哈希(递归)转换为大写。 |
upcase(String $arg) |
rvalue |
values |
此函数用于将哈希值作为数组返回。 |
values(Hash $hsh) |
rvalue |
versioncmp |
该函数用于比较两个版本号。 |
versioncmp(String $a, String $b) |
rvalue |
warning |
这个函数用于记录一个服务器上的警告级别的消息。 |
warning(Any *$values) |
statement |