Ist es möglich, einen Rollenvariablen-Standardwert gemäß einer bestimmten Bedingung (dh dem Wert einer anderen Variablen) zu ändern?
Einzelheiten
Ich habe zwei verwandte Variablen für einen Befehl env
und composer_opts
.
Wenn beide auf Standard ( env = "prod"
und composer_opts = "--no-dev"
) belassen werden, ist alles in Ordnung.
Wenn ich ändern env
zu dev
, wird die Standardeinstellung für die anderen meinen Befehl brechen, so dass ich immer beide müssen eingestellt werden . Wäre es möglich, dies zu vermeiden, indem Sie einen bedingten Standardwert mit einem benutzerdefinierten Skript festlegen / if?
Wichtig: Ich möchte den Wert nicht immer dem composer_opts
Wert entsprechend einstellen env
. Ich möchte es nur einstellen, wenn es nicht bereits eingestellt ist (dh ein dynamischer Standardwert).
Pseudocode
Ich möchte so etwas tun (folgender Code ist nicht gültig, nur Pseudocode, um mein Bedürfnis auszudrücken)
---
# defaults/main.yml
env: prod
composer_opts:
when: "{{env}}" = 'prod'
'--no-dev --optimize-autoloader --no-interaction'
when: "{{env}}" = 'dev'
''
composer_opts
auf leere Zeichenfolge gesetzt, wennenv
"dev" ist, und jeder tatsächliche Wert wird überschrieben. Ich denke , dass die bedingte sollte wie folgt erweitert werden:when: "{{env}}" == 'dev' and "{{composer_opts}}" is undefined
. Sieht es gut aus Können Sie Ihre Frage entsprechend udpate?