Writing powerful conditional statements
Puppet's if
statement allows you to change the manifest based on the value of a variable or an expression. With it, you can apply different resources or parameter values depending on certain facts about the node, for example, the operating system, or the memory size. You can also set variables within the manifest which can change the behavior of included classes. For example, nodes in data center A might need to use different DNS servers than nodes in data center B, or you might need to include one set of classes for an Ubuntu system, and a different set for other systems.
How to do it…
Here's an example of a useful conditional statement:
Add the following code to your manifest:
if $::operatingsystem == 'Ubuntu' { notify { 'Running on Ubuntu': } } else { notify { 'Non-Ubuntu system detected. Please upgrade to Ubuntu immediately.': } }
How it works…
Puppet treats whatever follows an if
keyword as an expression and evaluates it. If the expression evaluates...