Puppet 4新特性全解析
1. 新函数与Lambda表达式的运用
在Puppet 4中,新的类型系统催生了一系列新函数,这些函数能根据参数的数据类型呈现不同的行为。为理解这些函数,我们需先了解Puppet 4引入的Lambda表达式。
Lambda表达式本质是一段Puppet代码片段,可用于函数中。其语法结构为:包含可选类型和至少一个可设置默认值的变量,用竖线(|)括起来,随后是花括号内的Puppet代码。示例如下:
$packages = ['htop', 'less', 'vim'] each($packages) |String $package| { package { $package: ensure => latest, } }此例中,each函数对$packages变量进行迭代,每次迭代将$package设为htop、less和vim,后续代码块在资源类型声明里使用该Lambda变量。
Puppet 4为数组和哈希提供了一系列内置函数,如下:
-each
-slice
-filter
-map
-reduce