1
使用木偶實例資源類型時,得到$名字,我需要創建三個文件,與此內容:傀儡,一個數組
/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代碼?
我不能在這裏使用一個定義,因爲我已經在一個定義,並且似乎我們不能有嵌套的定義。 –
嵌套類/定義通常是一個壞主意:http://docs.puppetlabs.com/puppet/3/reference/lang_classes.html。他們可以放在外面沒有太多的麻煩,然後在另一個班級內引用。什麼東西阻止你? – xiankai
你可以在一個類中有一個定義或類。但是你不能在define中定義。它是否正確? –