是否可以根据某些条件(例如,另一个变量的值)更改角色变量的默认值?
细节
我有两个与命令相关的变量,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
。看起来不错吗?您可以相应地提问吗?