È possibile modificare il valore predefinito di una variabile di ruolo in base a una condizione (ovvero il valore di un'altra variabile)?
Dettagli
Ho due variabili correlate per un comando env
e composer_opts
.
Se entrambi sono lasciati al default ( env = "prod"
e composer_opts = "--no-dev"
) tutto è ok.
Se cambio env
a dev
, l'impostazione predefinita per l'altra interromperà il mio comando, quindi devo sempre impostare entrambe. Sarebbe possibile evitarlo impostando un valore predefinito condizionale con uno script personalizzato / if?
Importante: non voglio impostare sempre il composer_opts
valore in base al env
valore. Voglio impostarlo solo se non è già impostato (ovvero un valore predefinito dinamico).
pseudocodice
Vorrei fare qualcosa del genere (il seguente codice non è valido, solo pseudocodice per esprimere il mio bisogno)
---
# defaults/main.yml
env: prod
composer_opts:
when: "{{env}}" = 'prod'
'--no-dev --optimize-autoloader --no-interaction'
when: "{{env}}" = 'dev'
''
composer_opts
su stringa vuota quandoenv
è "dev", sovrascrivendo qualsiasi set di valori effettivi. Credo che il condizionale dovrebbe essere estesa in questo modo:when: "{{env}}" == 'dev' and "{{composer_opts}}" is undefined
. Sembra buono? Puoi rispondere alla tua domanda di conseguenza?