En Puppet, se pueden utilizar condicionales para tomar decisiones basadas en el estado actual del sistema o en el valor de las variables. Las condicionales más comunes que se pueden utilizar en Puppet son:
if y else
Se utilizan para tomar una decisión entre dos opciones. Por ejemplo:
Creamos el archivo;
sudo nano /etc/puppetlabs/puppet/manifests/condicionalIfElse.pp
if $osfamily == 'RedHat' {
notify {'greeting':
message => 'hola desde RedHat'
}
} else {
notify {'greeting':
message => "hola desde otro sistema operativo"
}
}
Resultado
case
Se utiliza para tomar una decisión entre varias opciones. Por ejemplo:
Creamos el archivo
sudo nano /etc/puppetlabs/puppet/manifests/condicionalCase.pp
case $osfamily {
'RedHat': {
notify {'greeting':
message => 'hola desde RedHat'
}
}
'Debian': {
notify {'greeting':
message => 'hola desde Debian'
}
}
'Ubuntu': {
notify {'greeting':
message => 'hola desde Ubuntu'
}
}
}
Resultado
unless
Se utiliza para especificar una condición negativa. Es decir, si la condición es falsa, se ejecuta el recurso. Por ejemplo:
unless $paquete == 'nginx' {
package { 'httpd':
ensure => installed,
}
}
defined
Se utiliza para comprobar si una variable está definida. Por ejemplo:
if defined($paquete) {
package { $paquete:
ensure => installed,
}
}
match
Se utiliza para comparar una variable con una expresión regular. Por ejemplo:
if $nombre =~ /Juan/ {
notify { "El nombre es Juan": }
}