[英]Do puppet conditionals ensure order, or do I still need to add metaparameters
我有類似於以下代碼:
class someclass($ensure = installed)
{
if($ensure == installed)
{
$installValue = installed
file { "someprogram.msi":
ensure => file,
source => 'somewhere',
path => 'C:/puppet-files/someprogram.msi',
}
}
else
{
$installValue = absent
}
package{ "someprogram":
ensure => $installValue,
source => 'C:/puppet-files/someprogram.msi',
}
}
包含文件資源的if語句是否可以確保在打包資源之前應用文件資源? 還是我需要在元參數中明確聲明這一點? 另外,我假設在安裝軟件包之前總是會設置$ installValue,對嗎?
謝謝,
德榮安
您應該明確指定順序,但是變量將被正確初始化。
Puppet 3中的資源順序是確定性的,但實際上是隨機的,因為它基於資源標題的哈希值。 在Puppet 3.3中,可以將此行為更改為清單順序( 發行說明 ),但是我不建議您依賴此行為-當然,如果您要共享模塊,則不能保證其他人使用相同的設置。
由於文件資源可能不存在(如果確保=>不存在),因此無法在包資源上指定關系。 而是before => Package['someprogram'],
添加到文件資源。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.