Можно ли изменить значение переменной роли по умолчанию в соответствии с некоторым условием (т. Е. Значением другой переменной)?
Детали
У меня есть две связанные переменные для команды, envи composer_opts.
Если оба остаются по умолчанию ( env = "prod"и composer_opts = "--no-dev"), все в порядке.
Если я поменяю envна dev, по умолчанию для другого будет нарушена моя команда, поэтому мне всегда нужно устанавливать оба. Можно ли избежать этого, установив условное значение по умолчанию с помощью специального сценария / if?
Важно: я не хочу всегда устанавливать composer_optsзначение в соответствии со envзначением. Я хочу установить его, только если он еще не установлен (т.е. динамическое значение по умолчанию).
ПСЕВДОКОД
Я хотел бы сделать что-то вроде этого (следующий код не является допустимым, просто псевдокод, чтобы выразить мою потребность)
---
# defaults/main.yml
env: prod
composer_opts:
when: "{{env}}" = 'prod'
'--no-dev --optimize-autoloader --no-interaction'
when: "{{env}}" = 'dev'
''
composer_optsпустую строку, когдаenvравен «dev», перезаписывая любое установленное значение. Я думаю , что условное должен быть продлен так:when: "{{env}}" == 'dev' and "{{composer_opts}}" is undefined. Это выглядит хорошо? Можете ли вы соответственно обновить свой вопрос?