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: 这种类型 ...