Conditionals


Conditionals werden für die Regel Erstellung von Kommandos oder Konfigurationen in host und hostgroups benutzt.

Valide Conditionals sind == (gleich), != (unterschiedlich), >= (mehr oder gleich) and <= (weniger oder gleich). Die >= und <= können nur mit Nummern benutzt werden. Die == und != können sowohl für Nummern als auch für Strings verwendet werden.

Mehrere Conditionals (unbeschränkte Anzahl) können mit 'and' und 'or' verbunden werden. Diese werden in sequenzieller logischer Reihenfolge ausgeführt, zB. für condition1 or condition1 wird die sekundäre Command nicht ausgeführt wenn die Erste erfolgreich ausgeführt wurde.


Benutzung:


1. Conditional Blöcke in "def" files

Conditionals können für die Definition von Blöcken in einem "def" file benutzt werden das bei erfolgreicher Ausführung einer Condition ausgeführt wird.

Sowohl das opening tag if <condition> und ending tag endif müssen in einer Zeile stehen. Zwischen den Tags kann jedes Kommando benutzt werden, dies wird nur bei erfolgreicher Ausführung der Conditional ausgeführt.

*Anmerkung: Es können keine Conditional Blöcke in einem Conditional Block verwendet werden.

Syntax:

if <%var%> == value [or|and condition2] [or|and ...]
[...]
endif

Beispiel:

if <%DIST%> == debian and <%DIST_VER%> == 6 or <%DIST%> == centos and <%DIST_ver%> >= 5
install: package
exec: ein Kommando
endif

2. Single commands in "def" files

Conditionals können für einzelne Kommandos in einem "def" file verwendet werden. Die Standard Syntax wird hierbei angewendet.

Syntax:

exec if <%var%> == value [or|and condition2] [or|and ...]: some command

Beispiel:

install if <%DIST%> == debian and <%DIST_VER%> == 6 or <%DIST%> == centos and <%DIST_ver%> >= 5: package

3. Conditional Blöcke in Konfigurationsdateien

Conditionals können ebenso in Konfigurationsdateien (siehe Configurations) verwendet werden um zB. nur bei erfolgreicher Ausführung Kommandos auszuführen.

*Anmerkung: Es können keine Conditional Blöcke in einem Conditional Block verwendet werden.

Syntax:

<%if <%var%> == value [or|and condition2] [or|and ...]%>
[...]
<%endif%>

Beispiel:

<%if <%DIST%> == debian and <%DIST_VER%> == 6%>
Konfiguration nur auf Debian 6
<%endif%>
<%if <%DIST%> == debian and <%DIST_VER%> >= 7%>
Konfiguration nur auf Debian 7 und neuer
<%endif%>
Konfiguration für alle Systeme