2011-09-27 99 views
7

有沒有辦法斷言puppet中的一個變量(或者更具體地說,一個事實)具有特定的價值,並且如果它沒有的話就放棄安裝?是否可以在Puppet中「聲明」?

爲背景,這裏的情況是:

在可以參考我的主機名大多數情況下,但有時我需要使用一個IP地址。例如,我們的日誌收集器主機需要在防火牆中爲幾臺特定的機器(而不是整個子網)打開一個端口。我需要使用IP地址在防火牆中打開一個洞。由於機器的IP地址不會改變,所以我打算將IP地址編碼爲配置的一部分,但我想檢查單個主機上的實際IP地址是否與配置中的IP地址匹配,並且如果發生故障它沒有。那可能嗎?

回答

11

我相信這樣的事情會的工作:

if $ipaddress != $expectedipaddress { 
    fail("IP mismatch") 
} 

fail() function導致解析失敗。用條件包裝它應該得到你想要的assert行爲。

我還沒有測試過這個具體的用法,但是如果解析失敗了一個新的目錄沒有被編譯,並且客戶端也沒有得到任何東西。

相關問題