Czy można zmienić domyślną wartość zmiennej roli zgodnie z pewnym warunkiem (tj. Wartością innej zmiennej)?
Detale
Mam dwie powiązane zmienne dla polecenia envi composer_opts.
Jeśli oba są pozostawione domyślnie ( env = "prod"i composer_opts = "--no-dev") wszystko jest w porządku.
Jeśli zmienię envna dev, ustawienie domyślne dla drugiego zepsuje moje polecenie, więc zawsze muszę ustawić oba. Czy można tego uniknąć, ustawiając domyślną wartość warunkową za pomocą skryptu niestandardowego / if?
Ważne: nie chcę zawsze ustawiać composer_optswartości zgodnie z envwartością. Chcę to ustawić tylko wtedy, gdy nie jest jeszcze ustawione (tj. Dynamiczna wartość domyślna).
Pseudo kod
Chciałbym zrobić coś takiego (poniższy kod jest nieprawidłowy, wystarczy pseudokod, aby wyrazić moją potrzebę)
---
# defaults/main.yml
env: prod
composer_opts:
when: "{{env}}" = 'prod'
'--no-dev --optimize-autoloader --no-interaction'
when: "{{env}}" = 'dev'
''
composer_optsna pusty ciąg znaków, gdyenvjest „dev”, zastępując wszelkie ustawione wartości rzeczywiste. Myślę, że warunkowy powinien zostać rozszerzony tak:when: "{{env}}" == 'dev' and "{{composer_opts}}" is undefined. Czy to dobrze wygląda? Czy potrafisz odpowiednio udoskonalić swoje pytanie?