Можно ли изменить значение переменной роли по умолчанию в соответствии с некоторым условием (т. Е. Значением другой переменной)?
Детали
У меня есть две связанные переменные для команды, 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
. Это выглядит хорошо? Можете ли вы соответственно обновить свой вопрос?