本節書摘來自異步社群《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節。