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

Puppet 类型Puppet 类型管理各个配置项。 Puppet 提供了一个包类型、一个用户类型、一个服务类型。并且每种类型都支持提供者。在 Puppet 中,有两类类型:Defined Types: 这种类型 ...