ある条件(つまり、別の変数の値)に従ってロール変数のデフォルト値を変更することは可能ですか?
詳細
コマンドに関連する2つの変数が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
は常に空の文字列に設定され、実際の値セットが上書きされます。条件は次のように拡張する必要があると思いますwhen: "{{env}}" == 'dev' and "{{composer_opts}}" is undefined
。それはよさそうですか?それに応じて質問を更新できますか?