天天看點

《Puppet實戰手冊》——2.8 編寫功能強大的條件語句

本節書摘來自異步社群《puppet實戰手冊》一書中的第2章,第2.8節,作者:【英】john arundel著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

puppet的if語句允許使用者基于變量或表達式的值來調整清單。有了它,使用者可以根據相關節點的某些fact(如作業系統或記憶體大小)應用(生效)不同的資源或參數值。

此外,也可以通過在清單内設定變量來調整引入的類的行為。例如,在資料中心a的伺服器可能需要使用與在資料中心b不同的dns伺服器,或者可能需要為ubuntu系統使用一組類,而其他系統使用另一組不同的類。

操作步驟

下面是一個非常有用的關于條件語句的例子。

在清單中添加下面的代碼:

工作原理

puppet視if關鍵字後的一切内容為一個表達式,并且為它求值。如果表達式的值為true,puppe就會執行大括号内的代碼。

當然,也可以添加一個else分支。如果表達式計算為false,則else分支将被執行。

更多參考

下面是使用if語句的一些技巧。

elsif分支

也可以使用elsif關鍵字來做更多的判斷。例如,下面的代碼:

比較

可以使用==文法來檢查兩個值是否相等,如下例所示:

或者,也可以使用!=來檢查它們是否不相等:

也可以使用<和>來比較數字:

可以使用<=或>=來檢查是否一個值大于(或小于)或等于另一個值。

組合表達式

可以把前面描述的各種簡單的表達式,使用and、or或not組合在一起成為更加複雜的邏輯表達式。

延伸閱讀

參見2.11節。

參見2.10節。

繼續閱讀