使用 puppet,我需要创建三个文件,内容如下:
/tmp/f1.txt: hello /tmp/f1.txt
/tmp/f2.txt: hello /tmp/f2.txt
/tmp/f3.txt: hello /tmp/f3.txt
我尝试如下:
$path="/tmp/"
$my_files = ["$path/f1.txt", "$path/f2.txt", "$path/f3.txt"]
file { $my_files:
ensure => file,
content => "hello $name\n",
}
但是这不起作用,因为 $name 未定义。
是否有一个变量可以为每个“迭代”实例化并且我可以使用?
ps:我知道我可以创建一个新的资源类型,如下所示:
define file_with_content {
file { $name:
ensure => file,
content => "hello $name\n",
}
}
$path="/tmp/"
$my_files = ["$path/f1.txt", "$path/f2.txt", "$path/f3.txt"]
file_with_content { $my_files: }
但这需要创建一个新的资源类型,我不能在我的上下文中这样做(这里没有解释)。
问题是,如何修改第一个代码以使其工作,而不定义新的资源类型,也不执行 shell 代码?