2017-10-09 1 views

Répondre

1

Je veux courir une pré-tâche qui passe si la variable contient une valeur de chaîne, sinon échoue si elle contient autre chose.

Cette tâche échoue si le variable est pas un objet chaîne:

- fail: 
    when: variable is not string 

Mais sachez que toutes les valeurs transmises comme extra-vars seront chaînes, parce que ce qu'ils sont - tout ce que vous tapez sur votre clavier est une chaîne valide. Comme il n'y a pas de déclaration de type, même si une variable contient une valeur numérique, elle sera stockée dans un objet chaîne.

Il est différent des valeurs variables définies en YAML qui subissent une autodétection de type effectuée par l'analyseur YAML. Par exemple si vous tapez myvar: true dans YAML, il sera considéré comme objet booléen true, mais si vous transmettez la même valeur avec --extra-vars "myvar:true", il s'agira d'un objet chaîne true.

Vous devez spécifier une autre condition.

+0

Très bien. Travaillé bien. En outre, je passe l'extra_args en chargeant à partir d'un fichier json qui prend la valeur numérique comme numérique lui-même plutôt que d'un objet chaîne. –

+0

Juste pour être sûr de vérifier si elle n'échoue pas à chaque fois. – techraf

+0

Vérifié. N'échoue pas à chaque fois. –