簡體   English   中英

人偶有條件確保順序,還是我仍然需要添加元參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM