¿Es posible cambiar el valor predeterminado de una variable de rol de acuerdo con alguna condición (es decir, el valor de otra variable)?
Detalles
Tengo dos variables relacionadas para un comando, env
y composer_opts
.
Si ambos se dejan por defecto ( env = "prod"
y composer_opts = "--no-dev"
) todo está bien.
Si cambio env
a dev
, el valor predeterminado para el otro romperá mi comando, por lo que siempre necesito configurar ambos. ¿Sería posible evitar esto estableciendo un valor predeterminado condicional con un script personalizado / if?
Importante: no quiero establecer siempre el composer_opts
valor de acuerdo con el env
valor. Quiero configurarlo solo si aún no está configurado (es decir, un valor predeterminado dinámico).
Pseudocódigo
Me gustaría hacer algo como esto (el siguiente código no es válido, solo pseudocódigo para expresar mi necesidad)
---
# defaults/main.yml
env: prod
composer_opts:
when: "{{env}}" = 'prod'
'--no-dev --optimize-autoloader --no-interaction'
when: "{{env}}" = 'dev'
''
composer_opts
en una cadena vacía cuandoenv
sea "dev", sobrescribiendo cualquier conjunto de valores real. Creo que el condicional debe extenderse como esto:when: "{{env}}" == 'dev' and "{{composer_opts}}" is undefined
. ¿Se ve bien? ¿Puedes responder tu pregunta en consecuencia?