Est-il possible de changer la valeur par défaut d'une variable de rôle en fonction d'une condition (c'est-à-dire la valeur d'une autre variable)?
Détails
J'ai deux variables liées pour une commande, env
et composer_opts
.
Si les deux sont laissés par défaut ( env = "prod"
et composer_opts = "--no-dev"
) tout va bien.
Si je passe env
à dev
, la valeur par défaut pour l'autre casse ma commande, j'ai donc toujours besoin de définir les deux. Serait-il possible d'éviter cela en définissant une valeur conditionnelle par défaut avec un script personnalisé / if?
Important: je ne veux pas toujours définir la composer_opts
valeur en fonction de la env
valeur. Je veux le définir uniquement s'il n'est pas déjà défini (c'est-à-dire une valeur dynamique par défaut).
Pseudocode
Je voudrais faire quelque chose comme ça (le code suivant n'est pas valide, juste un pseudocode pour exprimer mon besoin)
---
# defaults/main.yml
env: prod
composer_opts:
when: "{{env}}" = 'prod'
'--no-dev --optimize-autoloader --no-interaction'
when: "{{env}}" = 'dev'
''
composer_opts
sur une chaîne vide lorsqueenv
est "dev", écrasant tout ensemble de valeurs réelles. Je pense que le conditionnel devrait être étendue comme ceci:when: "{{env}}" == 'dev' and "{{composer_opts}}" is undefined
. Ça a l'air bien? Pouvez-vous mettre à jour votre question en conséquence?