¿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, envy composer_opts.
Si ambos se dejan por defecto ( env = "prod"y composer_opts = "--no-dev") todo está bien.
Si cambio enva 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_optsvalor de acuerdo con el envvalor. 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_optsen una cadena vacía cuandoenvsea "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?