本节书摘来自异步社区《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节。