Voorwaarden
Voorwaarden worden gebruikt om regels voor het uitvoeren van commando's
te definiëren, of te bepalen welke configuratie er moet gebruikt worden
op een host of hostgroep.
Aanvaarde voorwaarden zijn ==
(gelijk), !=
(niet gelijk), >=
(groter of gelijk) en <=
(kleiner of gelijk). De >=
en <=
operatoren kunnen enkel voor cijfers gebruikt worden. de ==
en !=
operatoren kunnen zowel voor Strings (tekst vergelijking) als nummers
gebruikt worden.
Enkele condities (zoveel als je wil) kunnen samengevoegd worden met
and
en or
. Deze zullen volgens sequentiële en logische volgorde
geïnterpreteerd worden (bvb voor voorwaarde1 or voorwaarde2
, als de
eerste voorwaarde voldoet, zal de tweede niet geëvalueerd worden).
Gebruik:
1. Voorwaarde blokken op "def" bestanden
Voorwaarden kunnen gebruikt worden om blokken in een "def" bestand te
definiëren, die enkel uitgevoerd worden wanneer de voorwaarde voldoet.
Zowel de opening tag if <voorwaarde>
en de eind tag endif
moeten op
een enkele lijn geschreven worden, zonder extra karakters, buiten de
aanvaarde parameters. Tussen deze kun je elk commando gebruiken dat
uitgevoerd moet worden wanneer de voorwaarde voldoet.
*Let op: Je kan geen voorwaarde blokken in voorwaarde blokken gebruiken, maar enkel een per een. Je kan wel single-line voorwaarden gebruiken, zoals omschreven in het volgende deel.
Syntax:
if <%var%> == waarde [or|and voorwaarde2] [or|and ...]
[...]
endif
Voorbeeld:
if <%DIST%> == debian and <%DIST_VER%> == 6 or <%DIST%> == centos and <%DIST_VER%> >= 5
install: package
exec: commando
endif
2. Single-line commando's in "def" bestanden
Voorwaarden kunnen gebruikt worden voor single-line commando's binnen een "def" bestand. De standaard syntax wordt gebruikt, en je kan ook voorwaarden voor concrete commando's gebruiken, zelf binnen voorwaarde blokken (zie vorige)
Syntax:
exec if <%var%> == waarde [or|and voorwaarde2] [or|and ...]: commando
Voorbeeld:
install if <%DIST%> == debian and <%DIST_VER%> == 6 or <%DIST%> == centos and <%DIST_VER%> >= 5: package
3. Voorwaarde blokken in configuratie bestanden
Voorwaarden kunnen ook gebruikt worden binnen configuratiebestanden (zie
Configuraties voor de documentatie) voor het
bepalen van delen van de configuratie die enkel voor bepaalde target
systemen geüpload mogen worden wanneer de voorwaarde geld. Het gebruik
is dezelfde als bij voorwaarde blokken bij "def" bestanden (zie vorige)
maar gedefinieerd met de tags <%if voorwaarde%>
<%endif%>
.
Opgelet: Je kan geen voorwaarde blokken binnen voorwaarde blokken gebruiken, enkel een per een.
Syntax:
<%if <%var%> == waarde [or|and voorwaarde2] [or|and ...]%>
[...]
<%endif%>
Voorbeeld:
<%if <%DIST%> == debian and <%DIST_VER%> == 6%>
configuratie die enkel geld voor Debian 6
<%endif%>
<%if <%DIST%> == debian and <%DIST_VER%> >= 7%>
configuratie die enkel geld voor Debian 7 of nieuwer
<%endif%>
configuratie voor alle systemen