Bir rol değişkeni varsayılan değerini bazı koşullara (yani başka bir değişkenin değeri) göre değiştirmek mümkün müdür?
ayrıntılar
Bir komut için iki ilişkili değişkenim var env
ve composer_opts
.
Her ikisi de varsayılan olarak bırakılırsa ( env = "prod"
ve composer_opts = "--no-dev"
) her şey yolunda demektir.
Şunu değiştirirsem env
için dev
hep hem ayarlamanız gerekir, böylece diğeri için varsayılan, emrime kıracak. Özel bir komut dosyası / if ile koşullu bir varsayılan değer ayarlayarak bundan kaçınmak mümkün müdür?
Önemli: Değeri her zamancomposer_opts
değere göre ayarlamak istemiyorum env
. Sadece zaten ayarlanmamışsa (yani dinamik bir varsayılan değer) ayarlamak istiyorum.
pseudocode
Böyle bir şey yapmak istiyorum (aşağıdaki kod geçerli değil, sadece ihtiyacımı ifade etmek için sözde kod)
---
# defaults/main.yml
env: prod
composer_opts:
when: "{{env}}" = 'prod'
'--no-dev --optimize-autoloader --no-interaction'
when: "{{env}}" = 'dev'
''
composer_opts
olduğunda her zaman boş dizeyeenv
ayarlanır. Ben koşullu böyle genişletilmesi gerektiğini düşünüyorum:when: "{{env}}" == 'dev' and "{{composer_opts}}" is undefined
. İyi görünüyor mu? Sorunuzu buna göre değerlendirebilir misiniz?