Condicionales
Los condicionales son usados para crear reglas para cuando un comando debería ser ejecutado o una configuración
debería ser usada en un host o un grupo de hosts.
Las condiciones válidas son ==
(igual), !=
(diferente), >=
(mayor o igual) y <=
(menor o igual).
Los operadores >=
y <=
pueden ser solo usados para números. Los operadores ==
and !=
pueden ser ambos usados
para cadenas de texto y números.
Muchos condicionales (tantos como quieras) pueden ser concadenados usando and
y or
. Serán
evaluados siguiendo un orden lógico y sequencial (por ejemplo, en condition1 or condition2
si la primera
condición se cumple, la segunda no será evaluada).
Uso:
1. Bloques condicionales en "def" files
Los condicionales pueden ser usados para definir bloques dentro de un archivo "def" que debería ser ejecutado
si una condición se cumple. Ambas, tanto la etiqueta de apertura if <condition>
y la etiqueta de cierre endif
deben ser escritos en una sola línea sin carácteres extra, solo los parámetros aceptados. Entre ellos puedes
escribir cualquier comando que será ejecutado solo si la condición es validada.
Nota: Desde v0.075 se puede utilizar condicionales anidados.
Sintáxis:
if <%var%> == value [or|and condition2] [or|and ...]
[...]
endif
Ejemplo:
if <%DIST%> == debian and <%DIST_VER%> == 6 or <%DIST%> == centos and <%DIST_ver%> >= 5
install: package
exec: some command
endif
2. Comandos en los archivos "def"
Los condicionales pueden ser usados para comandos sueltos en el interior del archivo "def". La sintáxis estándar se aplica, y también puedes definir condiciones para comandos concretos incluso dentro de un bloque condicional (mira arriba)
Sintáxis:
exec if <%var%> == value [or|and condition2] [or|and ...]: some command
Ejemplo:
install if <%DIST%> == debian and <%DIST_VER%> == 6 or <%DIST%> == centos and <%DIST_ver%> >= 5: package
3. Bloques condicionales en archivos de configuración
Los condicionales pueden ser también usados dentro de los archivos de configuración (lee Configurations de la documentación)
para definir partes del archivo de configuración que deberían ser solo cargadas en el servidor destino
si la condición se cumple. El uso es el mismo que para bloques condicionales en los archivos "def" (lee arriba)
pero definido por etiquetas <%if condition%>
<%endif%>
.
Nota: Desde v0.075 se puede utilizar condicionales anidados.
Sintáxis:
<%if <%var%> == value [or|and condition2] [or|and ...]%>
[...]
<%endif%>
Ejemplo:
<%if <%DIST%> == debian and <%DIST_VER%> == 6%>
algunas configuraciones que se aplican solo en Debian 6
<%endif%>
<%if <%DIST%> == debian and <%DIST_VER%> >= 7%>
algunas configuraciones que se aplican solo en Debian 7 o siguientes
<%endif%>
configuración común que se aplica en todos los sistemas