天天看点

《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节。

继续阅读